如下表所示，在 Python 中，有许多不同的数据类型，每种类型都有其特定的属性和操作。在本节中，我们将介绍 Python 中最常见的几种内置数据类型，并简单演示它们的基本使用。 类别 数据类型 数值类型 int, float, complex 序列类型 list, tuple, range 文本类型 str 映射类型 dict 集合类型 set, frozenset 布尔类型 bool 二进制类型 bytes, bytearray, memoryview 空类型 NoneType 在未来几个小节中，我们还将依次对各个数据类型进行详细的讲解。数值类型Python 中的主要数值类型有整数、浮点数和复数。这些类型支持基本的算术操作，如加、减、乘、除和取模运算，以及比较运算符（如大于、小于和等于）。下面是一些示例：整数# 整数 x = 10 y = 5 print(x + y) # 输出 15 print(x - y) # 输出 5 print(x * y) # 输出 50 print(x / y) # 输出 2.0 print(x % y) # 输出 0浮点数# 浮点数 a = 3.14 b = 2.0 print(a + b) # 输出 5.14 print(a - b) # 输出 1.14 print(a * b) # 输出 6.28 print(a / b) # 输出 1.57 print(a % b) # 输出 1.14复数# 复数 c = 2 + 3j d = 1 + 2j print(c + d) # 输出 (3+5j) print(c - d) # 输出 (1+1j) print(c * d) # 输出 (-4+7j) print(c / d) # 输出 (1.6-0.2j)布尔类型布尔类型在 Python 中表示 True 和 False 两个值。布尔类型通常用于条件语句和循环语句中，例如 if 语句和 while 语句。布尔类型支持基本的逻辑运算符，如与、或和非运算。下面是一些示例：# 布尔类型和逻辑运算符 a = True b = False print(a and b) # 输出 False print(a or b) # 输出 True print(not a) # 输出 False字符串类型字符串是 Python 中的一种基本数据类型，用于表示文本。可以使用单引号或双引号来表示字符串。字符串支持基本的操作，如拼接、重复、索引和切片。下面是一些示例：# 字符串拼接 a = "Hello" b = "World" c = a + " " + b print(c) # 输出 "Hello World" # 字符串重复 d = "ha" * 3 print(d) # 输出 "hahaha" # 字符串索引和切片 e = "Python" print(e[0]) # 输出 "P" print(e[-1]) # 输出 "n" print(e[0:2]) # 输出 "Py" print(e[2:]) # 输出 "thon" print(e[:3]) # 输出 "Pyt" print(e[1:-1]) # 输出 "ytho"列表类型列表是 Python 中的一种常见数据类型，用于存储一组有序的值。可以使用方括号来表示列表，并使用逗号分隔值。列表支持基本的操作，如索引、切片、添加、删除和修改元素。下面是一些示例：# 列表基本操作 a = [1, 2, 3, 4, 5] print(a[0]) # 输出 1 print(a[-1]) # 输出 5 print(a[0:2]) # 输出 [1, 2] print(a[2:]) # 输出 [3, 4, 5] print(a[:3]) # 输出 [1, 2, 3] a.append(6) # 添加元素 print(a) # 输出 [1, 2, 3, 4, 5, 6] a.remove(2) # 删除元素 print(a) # 输出 [1, 3, 4, 5, 6] a[0] = 0 # 修改元素 print(a) # 输出 [0, 3, 4, 5, 6]元组类型元组是 Python 中的另一种常见数据类型，类似于列表，但元组的值不可修改。可以使用圆括号来表示元组，并使用逗号分隔值。元组支持基本的操作，如索引和切片。下面是一些示例：# 元组基本操作 a = (1, 2, 3, 4, 5) print(a[0]) # 输出 1 print(a[-1]) # 输出 5 print(a[0:2]) # 输出 (1, 2) print(a[2:]) # 输出 (3, 4, 5) print(a[:3]) # 输出 (1, 2, 3)字典类型字典是 Python 中的一种数据类型，用于存储一组键值对。可以使用大括号来表示字典，并使用冒号分隔键和值，使用逗号分隔键值对。字典支持基本的操作，如添加、删除和修改元素。下面是一些示例：# 字典基本操作 a = {"name": "John", "age": 30, "city": "New York"} print(a["name"]) # 输出 "John" print(a.get("age")) # 输出 30 a["age"] = 35 # 修改元素 print(a) # 输出 {"name": "John", "age": 35, "city": "New York"} a["country"] = "USA" # 添加元素 print(a) # 输出 {"name": "John", "age": 35, "city": "New York", "country": "USA"} del a["city"] # 删除元素 print(a) 集合类型集合是 Python 中的一种数据类型，用于存储一组无序的、唯一的值。可以使用大括号来表示集合，使用逗号分隔值。集合支持基本的操作，如添加、删除和交、并、差集等操作。下面是一些示例：# 集合基本操作 a = {1, 2, 3, 4, 5} b = {4, 5, 6, 7, 8} print(a) # 输出 {1, 2, 3, 4, 5} a.add(6) # 添加元素 print(a) # 输出 {1, 2, 3, 4, 5, 6} a.remove(1) # 删除元素 print(a) # 输出 {2, 3, 4, 5, 6} print(a.union(b)) # 输出 {2, 3, 4, 5, 6, 7, 8} print(a.intersection(b)) # 输出 {4, 5} print(a.difference(b)) # 输出 {2, 3, 6}未来几个小节中，我们将分别详细介绍各个数据类型的用法。
Python 中的字符串是一种不可变的序列类型，用于表示文本数据。字符串可以包含单个字符、数字、符号和文本。在 Python 中，字符串可以使用单引号（'）或双引号（"）来定义，两者是等效的。例如：my_string = 'Hello, world!'Python 中的字符串是序列类型，可以进行索引和切片操作。索引用于获取字符串中单个字符的值，切片用于获取子字符串。索引和切片的语法如下：# 获取字符串中第一个字符的值 print(my_string[0]) # Output: 'H' # 获取字符串中从第3个到第7个字符的子串 print(my_string[2:7]) # Output: 'llo, ' # 获取字符串中从第6个字符到末尾的子串 print(my_string[5:]) # Output: ', world!'字符串还可以使用加号（+）进行拼接，使用星号（*）进行重复。例如：# 字符串拼接 string1 = 'Hello,' string2 = ' world!' print(string1 + string2) # Output: 'Hello, world!' # 字符串重复 print('Hello, ' * 3) # Output: 'Hello, Hello, Hello, '在 Python 中，字符串还有一些常见的内置方法，可以进行查找、替换、大小写转换等操作。例如：# 查找字符串中某个子串的位置 my_string = 'Hello, world!' print(my_string.find('world')) # Output: 7 # 替换字符串中的子串 print(my_string.replace('world', 'Python')) # Output: 'Hello, Python!' # 将字符串中的所有字符转换为大写 print(my_string.upper()) # Output: 'HELLO, WORLD!'Python 还提供了一些格式化字符串的方式，用于将变量的值插入到字符串中。其中，使用格式化字符串字面值（ f-string ）是最常用的方式。例如：name = 'Bob' age = 30 print(f'My name is {name} and I am {age} years old.') # Output: 'My name is Bob and I am 30 years old.'上述代码中的字符串前缀为 f ，后面用大括号{}表示需要插入变量的位置，其中大括号中可以包含变量名、属性名、函数调用等 Python 表达式。在运行时， Python 会将大括号中的表达式求值，并将结果插入到字符串中。Python 中的字符串是一个非常强大的工具，可以用于表示文本数据、进行字符串处理和格式化等。在掌握字符串的基本用法后，还需要结合实际问题灵活应用字符串相关的操作和方法。
函数是一段可重用的代码块，可以接受参数并返回值。Python 中的函数使用 def 关键字来定义。下面是一个示例：# 函数 def add(a, b): return a + b result = add(1, 2) print(result) # 输出 3函数可以接收输入参数和返回输出结果，让我们可以把复杂的问题分解成小的任务单元，提高代码的可维护性和重用性。下面将详细介绍 Python 函数的用法和示例：函数定义在 Python 中，函数的定义以关键字 def 开始，后跟函数名和参数列表。函数体是函数的主要代码块，它包含在缩进块中。函数的语法如下：def function_name(parameters): statement(s)其中， function_name 是函数的名称， parameters 是可选的参数列表，用于传递值给函数； statement(s) 是要执行的代码块。在函数定义的代码块中，可以使用 return 语句来返回值。例如，下面的代码定义了一个函数，用于计算两个数字的和：def add(x, y): return x + y函数调用在 Python 中，可以使用函数名来调用函数，并向函数传递参数。函数调用的基本语法如下：result = function_name(arguments)其中， result 是函数返回的结果， function_name 是要调用的函数的名称， arguments 是要传递给函数的参数。例如，下面的代码调用了 add 函数，计算了两个数的和：result = add(3, 4) print(result) # 输出7默认参数在 Python 中，可以使用默认参数来定义函数。默认参数是指在函数定义中预先定义的参数值。如果函数调用时没有提供参数，则将使用默认值。例如，下面的代码定义了一个带有默认参数的函数：def multiply(x, y=2): return x * y在这个函数中，如果只提供一个参数，则第二个参数将使用默认值2。例如，下面的代码调用了 multiply 函数，计算了两个数的积：result = multiply(3, 4) print(result) # 输出12 result = multiply(3) print(result) # 输出6，因为第二个参数使用了默认值2以上是第一部分的内容，读者已经学习了 Python 的基本数据类型、控制流语句和函数。在第二部分中，我们将更深入地学习 Python 的高级特性，例如面向对象编程、异常处理、文件处理和模块化编程。
Python 的模块是一个包含定义和语句的文件，通常包含了函数、类和变量等代码，这些代码可以被其他 Python 程序引用和重用。可以使用 import 语句来导入模块。 Python 标准库提供了许多常用的模块，例如math、random和datetime等，同时我们也可以编写自己的模块来实现特定的功能。使用模块可以提高代码的复用性，并且使代码更易于维护。在Python中，我们可以使用import语句来导入一个模块，语法如下：import module_name其中 module_name 是要导入的模块的名称。导入模块后，我们就可以使用其中定义的函数、类和变量等代码了。下面是一个导入 Python 标准库模块的示例，我们可以在代码中导入 math 模块，并使用其中的 sqrt 函数来计算平方根，如下所示：import math x = math.sqrt(25) print(x) # 输出5.0在导入模块时，我们还可以给模块指定一个别名，这样可以方便地引用模块中的代码。例如，我们可以给 math 模块指定一个别名 m ，然后使用 m.sqrt 来调用 sqrt 函数，如下所示：import math as m x = m.sqrt(25) print(x) # 输出5.0我们还可以使用 from ... import ... 语句从模块中导入指定的函数、类或变量等代码，而不是导入整个模块。例如，我们可以从 math 模块中导入 sqrt 函数，然后直接使用该函数，如下所示：from math import sqrt x = sqrt(25) print(x) # 输出5.0除此之外，我们也可以创建自己的模块，并将其导入到其他 Python 程序中使用。创建模块很简单，只需要将代码保存到一个 .py 文件中，文件名即为模块名，然后使用 import 语句来导入模块。下面是一个示例：# 文件 my_module.py def say_hello(): print("Hello, world!") # 文件 main.py import my_module my_module.say_hello() # 输出 "Hello, world!"总之， Python 模块是一个非常重要且实用的概念，它可以帮助我们组织和重用代码，提高代码的可读性和可维护性。
在第一部分中，我们学习了 Python 的基本语法、数据类型、控制流语句以及函数。在第二部分中，我们将更深入地学习 Python 的高级特性，例如面向对象编程、异常处理、文件处理和模块化编程。面向对象编程（Object-Oriented Programming，简称OOP）是一种编程范式，将数据和行为封装在对象中。Python 是一种支持面向对象编程的语言，它可以使用类（class）来创建对象。当我们需要处理某些具有相同属性和方法的对象时，类和对象就成为了一个重要的解决方案。类是一种用户自定义的数据类型，它包含了一些方法和属性的定义，用来描述对象的特征和行为。而对象则是类的实例化，它是由类创建的具有特定属性和方法的实体。类的定义在 Python 中，可以使用 class 关键字来定义一个类，如下所示：class Person: # 类属性 species = 'human' # 构造函数 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 的类，它包含一个类属性 species ，一个构造函数 init 和两个方法 say_hello 和 set_species 。构造函数 init 用于创建实例对象，并初始化实例属性。实例方法 say_hello 用于打印一条问候语，并使用到实例属性 self.name 和 self.age 。创建对象在 Python 中，可以使用类来创建对象。在创建对象时，会自动调用类的构造函数，如下所示：p1 = Person('Alice', 25) p2 = Person('Bob', 30) p1.say_hello() # 输出Hello, my name is Alice, and I am 25 years old. p2.say_hello() # 输出Hello, my name is Bob, and I am 30 years old.在上面的代码中，我们分别使用类 Person 了两个对象 p1 和 p2 ，并分别调用了它们的实例方法 say_hello 。访问属性在 Python 中，对象的属性可以通过点运算符来访问，如下所示：print(p1.name) # 输出Alice print(p2.age) # 输出30在上面的代码中，我们分别访问了对象 p1 和 p2 的属性 name 和 age ，并将它们打印出来。继承在 Python 中，类可以继承其他类的属性和方法。被继承的类被称为父类或基类，继承它的类被称为子类或派生类。子类可以覆盖父类的方法，并添加自己的属性和方法。例如，下面的代码定义了一个子类 Student ，它继承了父类 Person 的属性和方法，并添加了自己的属性和方法：class Student(Person): def __init__(self, name, age, major): super().__init__(name, age) self.major = major def say_hello(self): print(f"Hello, my name is {self.name}, and I am {self.age} years old. My major is {self.major}.") s1 = Student('Charlie', 20, 'Computer Science') s2 = Student('David', 22, 'Mathematics') s1.say_hello() # 输出Hello, my name is Charlie, and I am 20 years old. My major is Computer Science. print(s2.species) # 输出human print(s2.major) # 输出Mathematics在这个例子中，我们定义了一个子类 Student ，它继承了 Person 类。子类 Student 有一个新的属性 major ，表示学生的专业。在子类中，我们重写了父类的实例方法 say_hello ，添加了一个新的输出信息 —— 学生的专业。在子类 Student 的构造函数中，我们调用了父类 Person 的构造函数，以初始化父类的属性 name 和 age 。这是通过调用 super().init(name, age) 来实现的。在定义好 Student 类后，我们使用它创建了两个 Student 对象 s1 和 s2 ，并使用它们的实例方法 say_hello 来打印输出。我们还访问了对象s2的属性 species 和 major ，其中属性 species 是从父类 Person 继承而来的。以上就是 Python 中类和对象的基本用法，它们是面向对象编程的基石，可以使我们更方便地组织和管理代码，提高代码的可维护性和重用性。在下一节中，我们将介绍 Python ....