20 分钟掌握 Python 基础知识

154 阅读16分钟

在这本旨在帮助您掌握基础知识的综合指南中探索 Python 编程的基础知识。了解 Python 中的变量、数据类型、字符串格式、数据结构、函数、条件、循环、模块和类,并释放这种多才多艺且功能强大的语言的力量。无论您是初学者还是想重温自己的技能,本文都将为您提供 Python 开发的坚实基础。

我之前已经讨论过安装Python和设置 Visual Studio Code 以进行 Python 开发,因此我不会在本文中对此进行解释。

多变的

在 Python 中,变量是可以存储值的命名占位符。变量是使用赋值运算符 ( =) 创建的。例如:

my_variable = 10

这里,my_variable是一个保存值的变量10

Python 有几种可以分配给变量的数据类型。Python 中的一些常见数据类型包括:

  1. 数值数据类型:

    • 整数 ( int) - 代表整数,例如42-7
    • Float ( float) - 表示十进制数,例如3.14-0.5
    • 复数 ( complex) - 表示同时具有实部和虚部的数字,例如1 + 2j.
  2. 布尔数据类型:

    • Boolean ( ) - 表示或 的bool值。True``False
  3. 序列数据类型:

    • 字符串 ( str) - 表示字符序列,例如"Hello, World!".
    • List ( list) - 表示有序的项目集合,例如[1, 2, 3].
    • 元组 ( tuple) - 类似于列表,但不可变(无法更改),例如(1, 2, 3).
  4. 映射数据类型:

    • 字典 ( dict) - 表示键值对的集合,例如{"name": "John", "age": 30}.
  5. 设置数据类型:

    • Set ( set) - 表示唯一项的无序集合,例如{1, 2, 3}.

Python 是一种动态类型语言,这意味着变量的数据类型是在运行时根据它所持有的值来推断的。例如,如果您将整数值分配给变量,则该变量将具有int数据类型。如果您稍后将字符串值分配给同一个变量,该变量现在将具有str数据类型。

字符串格式

在 Python 中,字符串格式化是通过将值插入字符串模板来创建字符串的过程。有几种方法可以在 Python 中进行字符串格式化,包括:

  1. 连接:您可以使用+运算符连接字符串和变量。例如:

     name = "John"
     age = 30
     message = "My name is " + name + " and I am " + str(age) + " years old."
    

    这里,该str()函数用于将整数转换age为字符串,以便它可以与其他字符串连接。

  2. %运算符:您可以使用%运算符将​​值替换为字符串模板。例如:

     name = "John"
     age = 30
     message = "My name is %s and I am %d years old." % (name, age)
    

    这里,%s是字符串值的占位符,%d是十进制(整数)值的占位符。要替换的值在元组中提供(name, age)

  3. str.format():您可以使用该str.format()方法将值插入到字符串模板中。例如:

     name = "John"
     age = 30
     message = "My name is {} and I am {} years old.".format(name, age)
    

    此处,{}占位符用于指示应在何处插入值。方法中提供了要替换的值format()

  4. f-strings(格式化字符串文字):这是在 Python 中格式化字符串的最新和广泛使用的方法。您可以使用 f 字符串将值替换为使用花括号的字符串模板{}。例如:

     name = "John"
     age = 30
     message = f"My name is {name} and I am {age} years old."
    

    此处,变量nameage包含在字符串文字内的大括号中,值将被插入到字符串中。

除了字符串格式化之外,Python 还提供了几种可用于操作字符串的内置字符串方法。Python 中一些常用的字符串方法包括:

  1. str.upper():将字符串中的所有字符转换为大写。
  2. str.lower():将字符串中的所有字符转换为小写。
  3. str.strip(): 从字符串的开头和结尾删除空格(空格、制表符和换行符)。
  4. str.split():根据指定的分隔符将字符串拆分为子字符串列表。
  5. str.join():使用指定的分隔符将字符串列表连接成单个字符串。
  6. str.replace():将字符串中所有出现的指定子字符串替换为另一个子字符串。
  7. str.startswith()True如果字符串以指定的子字符串开头,则返回,否则返回False
  8. str.endswith()True如果字符串以指定的子字符串结尾,则返回,否则返回False

这些只是 Python 中可用的众多字符串方法中的一小部分。您可以在 Python 文档中找到有关字符串方法的更多信息。

数据结构

列表

在 Python 中,列表是项目的集合,它可以是任何数据类型,它们是有序的和可变的(可变的)。列表是通过将以逗号分隔的项目序列括在方括号中来创建的[]

例如:

my_list = [1, 2, 3, "apple", "banana", "cherry"]

这里,my_list是一个包含三个整数和三个字符串的列表。

您可以通过索引访问列表中的各个项目,列表中的第一项从 0 开始。

例如:

print(my_list[0])  # prints 1
print(my_list[3])  # prints "apple"

您还可以使用负索引从列表末尾访问项目。例如:

print(my_list[-1])  # prints "cherry"
print(my_list[-3])  # prints "apple"

Python 中的列表支持多种用于添加、删除和操作项目的内置方法。一些常用的列表方法包括:

  1. list.append(item):将项目添加到列表的末尾。

  2. list.insert(index, item):在列表中的指定位置插入一个项目。

  3. list.remove(item):从列表中删除第一次出现的项目。

  4. list.pop(index):删除并返回列表中指定位置的项目。

  5. list.sort():按升序对列表中的项目进行排序。

  6. list.reverse():反转列表中项目的顺序。

  7. len(list):返回列表中的项目数。

您还可以使用切片来提取列表的子序列。切片使用冒号:运算符为子序列指定开始索引(包括)和结束索引(不包括)。例如:

my_list = [1, 2, 3, 4, 5]
sub_list = my_list[1:4]  # returns [2, 3, 4]

Python 中的列表用途广泛,广泛用于许多应用程序中。它们可用于存储数据集合、实现算法和表示复杂结构。

元组

在 Python 中,元组是有序的、不可变的(不可更改的)元素集合。元组类似于列表,但一旦创建就不能修改。元组是通过将逗号分隔的值序列括在括号中创建的()

例如:

my_tuple = (1, 2, 3, "apple", "banana", "cherry")

这里,my_tuple是一个包含三个整数和三个字符串的元组。

您可以通过索引访问元组中的各个元素,就像在列表中一样。例如:

print(my_tuple[0])  # prints 1
print(my_tuple[3])  # prints "apple"

但是,因为元组是不可变的,所以一旦创建它们就不能修改它们的元素。例如,以下代码将引发一个TypeError

my_tuple[0] = 4  # raises TypeError: 'tuple' object does not support item assignment

Python 中的元组支持多种用于操作和查询元素的内置方法。

一些常用的元组方法包括:

  1. tuple.count(value):返回指定值在元组中出现的次数。

  2. tuple.index(value):返回元组中指定值第一次出现的索引。

  3. len(tuple):返回元组中元素的数量。

因为元组是不可变的,所以它们通常用于表示不应修改的固定数据集合,例如 2D 空间中点的坐标或颜色的 RGB 值。元组还常用于从一个函数返回多个值,其中这些值不能单独修改。例如:

def get_name_and_age():
    name = "John"
    age = 30
    return name, age

result = get_name_and_age()
print(result)  # prints ("John", 30)

在这里,该get_name_and_age()函数返回一个包含两个值的元组:一个人的姓名和年龄。元组被解包到 variables 中result,其中包含两个值作为单独的变量。

在 Python 中,集合是唯一元素的无序集合。集合是通过将逗号分隔的值序列括在花括号内{}或使用set()构造函数来创建的。

例如:

my_set = {1, 2, 3, 4, 4, 5}

这里,my_set是一个包含五个唯一整数的集合。

Python 中的集合支持多种用于添加、删除和操作元素的内置方法。

一些常用的设置方法包括:

  1. set.add(element):向集合中添加一个元素。

  2. set.remove(element):从集合中删除一个元素。KeyError如果元素不在集合中,则引发 a 。

  3. set.discard(element):如果存在,则从集合中删除一个元素。如果元素不在集合中,则不会引发错误。

  4. set.pop():从集合中删除并返回任意元素。

  5. set.clear():从集合中删除所有元素。

  6. set.union(other_set):返回一个包含两个集合中所有元素的新集合。

  7. set.intersection(other_set):返回一个新集合,其中仅包含两个集合共有的元素。

  8. set.difference(other_set):返回一个新集合,该集合仅包含第一个集合中但不包含第二个集合中的元素。

  9. set.symmetric_difference(other_set):返回一个新集合,该集合仅包含第一个或第二个集合中的元素,但不包含两者。

  10. len(set):返回集合中元素的数量。

Python 中的集合通常用于执行数学集合运算,例如并集、交集和差集。它们对于从列表或其他序列中删除重复项也很有用。例如:

my_list = [1, 2, 3, 4, 4, 5]
my_set = set(my_list)
print(my_set)  # prints {1, 2, 3, 4, 5}

在这里,set()构造函数用于从my_list列表创建一个集合,其中包含重复的元素。结果集my_set仅包含来自 的唯一元素my_list

字典

在 Python 中,字典是键值对的无序集合。字典是通过将逗号分隔的键值对序列括在花括号内{}或使用dict()构造函数来创建的。

例如:

my_dict = {"apple": 2, "banana": 3, "cherry": 5}

my_dict是一个字典,将键“apple”、“banana”和“cherry”分别映射到值 2、3 和 5。

您可以通过键访问字典中的各个值,如下所示:

print(my_dict["apple"])  # prints 2

您还可以将新的键值对添加到字典中,如下所示:

my_dict["orange"] = 4

您可以修改与字典中的键关联的值,如下所示:

my_dict["banana"] = 6

您可以从字典中删除键值对,如下所示:

del my_dict["cherry"]

Python 中的字典支持多种用于操作和查询键和值的内置方法。

一些常用的字典方法包括:

  1. dict.keys():返回字典中键的视图。

  2. dict.values():返回字典中值的视图。

  3. dict.items():返回字典中键值对的视图。

  4. dict.get(key, default=None):返回与字典中的键关联的值,如果键不存在,则返回默认值。

  5. dict.pop(key, default=None):删除并返回与字典中的键关联的值,如果键不存在,则返回默认值。

  6. dict.update(other_dict):将所有键值对添加other_dict到字典中,覆盖字典中已存在的键的值。

  7. len(dict):返回字典中键值对的个数。

Python 中的字典通常用于表示相关数据的集合,其中每个元素都由唯一的键标识。它们对于计算序列中元素的出现次数以及基于键而不是索引执行查找也很有用。

功能

在 Python 中,函数是执行特定任务的可重用代码块。函数是使用关键字定义的def,后跟函数名称、圆括号()和冒号:。函数体在函数定义下方缩进。

例如:

def greet(name):
    print("Hello, " + name + "!")

这里,greet是一个接受参数name并打印问候消息的函数。

您可以使用其名称后跟圆括号来调用函数,如下所示:

greet("Alice")  # prints "Hello, Alice!"

函数可以有多个参数,您可以为部分或全部参数提供默认值。例如:

def calculate_sum(a, b=0):
    return a + b

这里,calculate_sum是一个函数,它有两个参数,ab, 的默认值为 0 ba该函数返回和的总和b

您可以通过省略相应的参数来调用具有默认参数值的函数,如下所示:

print(calculate_sum(5))  # prints 5
print(calculate_sum(5, 10))  # prints 15

函数也可以使用return关键字返回值。例如:

def calculate_product(a, b):
    return a * b

这里,calculate_product是一个函数,它接受两个参数,ab,并返回它们的乘积。

您可以调用一个返回值的函数并在表达式中使用它的返回值,如下所示:

result = calculate_product(3, 4)
print(result)  # prints 12

Python 中的函数可用于将复杂问题分解为更小、更易于管理的部分,并组织代码以提高可读性和可维护性。它们是 Python 编程的基本构建块,并在 Python 应用程序中广泛使用。

条件句

Python 中的条件允许您根据特定条件是真还是假来执行不同的代码块。Python中最常用的条件语句就是ifstatement。

if下面是Python 语句的示例:

x = 5
if x > 0:
    print("x is positive")

在此示例中,if语句检查 的值是否x大于零。如果条件为真,print则执行该语句,并将“x is positive”打印到控制台。

您还可以使用else语句在条件为假时执行不同的代码块。

例如:

x = -3
if x > 0:
    print("x is positive")
else:
    print("x is non-positive")

在此示例中,因为x是负数,if条件为假,而是else执行块。“x is non-positive”被打印到控制台。

您还可以使用elif(“else if”的缩写)语句来测试初始if语句之后的其他条件。例如:

x = 0
if x > 0:
    print("x is positive")
elif x < 0:
    print("x is negative")
else:
    print("x is zero")

在这个例子中,因为x是零,第一个if条件是假的,elif而是测试条件。由于x也不是负数,else因此执行该块。“x 为零”被打印到控制台。

Python 中的条件还可以使用逻辑运算符(例如andor和 )not来组合多个条件。例如:

x = 10
if x > 0 and x < 100:
    print("x is a positive two-digit number")

在此示例中,if条件检查是否x既大于零又小于 100。如果条件为真,print则执行该语句。

Python 中的条件语句是控制程序流程和根据不同情况做出决策的强大工具。它们在 Python 程序中被广泛使用,以实现逻辑并根据用户输入、数据值和其他因素做出决策。

循环

在 Python 中,循环允许您多次执行一个代码块。Python 中有两种类型的循环:for循环和while循环。

循环for用于迭代一系列值,例如列表或字符串。

for下面是Python 中的循环示例:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

在此示例中,for循环遍历水果列表并将每个水果打印到控制台。

只要特定条件为真,循环while用于重复执行一段代码。

while下面是Python 中的循环示例:

i = 0
while i < 5:
    print(i)
    i += 1

在此示例中,while循环将 的值打印i到控制台并每次将其递增 1,直到i不再小于 5。

您还可以使用breakandcontinue语句来控制循环的流程。该break语句允许您提前退出循环,而该continue语句允许您跳过循环的某些迭代。例如:

for i in range(10):
    if i == 5:
        break
    elif i % 2 == 0:
        continue
    print(i)

在此示例中,for循环打印从 0 到 9 的值i,但它使用语句在等于 5break时提前退出循环。它还使用语句跳过偶数的值。i``continue``i

Python 中的循环是一种强大的工具,可用于迭代值序列、重复执行代码和控制程序流。它们在 Python 程序中广泛使用,以实现逻辑并执行数据处理、文件 I/O 和用户交互等任务。

模块

在 Python 中,模块是包含 Python 代码的文件,可以将其导入到其他 Python 脚本或模块中。模块提供了一种将代码组织成可重用单元并避免程序不同部分之间名称冲突的方法。

要在 Python 中使用模块,只需使用import语句导入它。下面是一个如何导入math模块的例子,它提供了三角函数和对数函数等数学函数:

import math

print(math.sqrt(25))  # prints 5.0
print(math.sin(math.pi / 2))  # prints 1.0

在此示例中,我们导入math模块并使用其sqrtsin函数分别计算 25 的平方根和 pi/2 的正弦值。

您还可以使用关键字从模块中导入特定的函数或变量from。例如:

from math import sqrt, pi

print(sqrt(25))  # prints 5.0
print(pi)  # prints 3.141592653589793

在这个例子中,我们只从模块中导入sqrt和函数,这样我们就可以直接使用它们而不必在它们前面加上.pi``math``math.

Python 还附带一个大型标准模块库,提供范围广泛的功能,例如文件 I/O、网络通信和 GUI 编程。此外,Python 包索引 (PyPI) 中提供了许多第三方模块,可以使用pip包管理器进行安装。

Python 中的模块是组织和重用代码的强大工具,它们提供了一种扩展语言功能的便捷方式。通过导入模块,您可以利用现有代码并专注于解决您的特定编程问题。

类和对象

在 Python 中,类是用于创建对象的蓝图或模板,对象是类的实例。一个类定义了一组属性和方法,这些属性和方法描述了从该类创建的对象的行为。

这是 Python 中一个简单类的示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

在此示例中,我们定义了一个Person具有两个属性 (nameage) 和一个方法 ( say_hello) 的类。方法__init__是创建类的对象时调用的特殊方法。它使用作为参数传递的值初始化name和属性。age

要从类创建对象Person,我们可以使用以下语法:

person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

在此示例中,我们从类中创建了两个对象 (person1person2Person,它们具有不同的nameage属性值。

我们可以在每个对象上调用该say_hello方法来显示问候语:

person1.say_hello()  # prints "Hello, my name is Alice and I am 25 years old."
person2.say_hello()  # prints "Hello, my name is Bob and I am 30 years old."

在此示例中,我们say_hello对每个对象调用该方法以显示个性化问候语。

类和对象是面向对象编程 (OOP) 中的基本概念,在 Python 程序中广泛用于组织代码和实现复杂系统。通过定义类,您可以创建可以轻松修改和扩展的可重用代码,通过创建对象,您可以对真实世界的实体建模并在您的程序中操作它们。

结论

总之,Python 是一种多功能且功能强大的编程语言,具有广泛的特性和应用。通过掌握变量、数据类型、字符串格式、数据结构、函数、条件、循环、模块和类等基础知识,您可以释放 Python 的全部潜力并成为熟练的开发人员。无论您是初学者还是希望提高技能,了解这些基本概念都将为您的 Python 开发之旅打下坚实的基础。

在本系列中,您将从变量开始深入学习 Python 到面向对象编程。在本系列结束时,您将成为一名熟练的 Python 程序员,知道如何编写优化的代码。