一、变量
在 Python 中,变量用于存储数据值。变量的命名需要遵循一定的规则:
- 变量名可以包含字母、数字和下划线,但必须以字母或下划线开头。
- 变量名不能是 Python 中的关键字(如 if、for、while 等)。
变量不需要事先声明类型,在赋值时会自动确定其类型。例如:
x = 5 # x 是整数类型
y = 3.14 # y 是浮点数类型
name = "Alice" # name 是字符串类型
is_valid = True # is_valid 是布尔类型
您可以随时修改变量的值,并且变量的类型会根据新赋的值自动改变。
二、数据类型
Python 中有以下常见的数据类型:
- 整数(int):例如 -5、0、100 等,没有小数部分。
- 浮点数(float):带有小数部分的数值,如 3.14、-2.5 等。
- 字符串(str):用单引号 ‘ 或双引号 “ “ 括起来的字符序列,例如 “Hello” 、’World’ 。
- 布尔值(bool):只有两个值,True(真)和 False(假),常用于条件判断。
- 列表(list):用方括号 [ ] 定义,元素之间用逗号分隔,例如 [1, 2, 3] ,元素可以是不同类型,并且列表的长度可变。
- 元组(tuple):用小括号 ( ) 定义,元素之间用逗号分隔,例如 (1, 2, 3) ,元组的元素不可修改,长度固定。
- 字典(dict):由键值对组成,用花括号 { } 定义,键和值之间用冒号 : 分隔,元素之间用逗号分隔,例如 {‘name’: ‘Alice’, ‘age’: 20} 。
- 集合(set):用花括号 { } 定义,元素无序且不重复,例如 {1, 2, 3} 。
2.1 整数
在 Python 中,整数(int)是一种基本的数据类型,用于表示没有小数部分的数值。
整数可以是正整数、负整数或零,例如:5、-10、0 等。
Python 中的整数具有以下特点:
- 整数的取值范围在理论上是无限的,只受限于计算机的内存。
- 可以进行常见的算术运算,如加法(+)、减法(-)、乘法(*)、除法(/,结果为浮点数)、取模(%)和整除(//)等。
以下是一些关于整数操作的示例代码:
# 整数的加法
a = 5
b = 10
result = a + b
print(result) # 输出 15
# 整数的乘法
c = 3
d = 4
product = c * d
print(product) # 输出 12
# 整数的除法(结果为浮点数)
e = 10
f = 3
division = e / f
print(division) # 输出 3.3333333333333335
# 整数的整除
g = 10
h = 3
integer_division = g // h
print(integer_division) # 输出 3
# 整数的取模
i = 10
j = 3
modulus = i % j
print(modulus) # 输出 1
2.2 浮点数
在 Python 中,浮点数(float)用于表示带有小数部分的数值。
浮点数可以用十进制表示,例如 3.14、-0.5、123.456 等。
需要注意的是,由于计算机内部表示浮点数的方式存在一定的精度限制,可能会导致一些微妙的问题。例如,在进行浮点数运算时,可能会出现舍入误差。
以下是一些关于浮点数的操作示例:
# 浮点数的加法
a = 1.5
b = 2.7
result = a + b
print(result) # 输出 4.2
# 浮点数的乘法
c = 2.5
d = 3.0
product = c * d
print(product) # 输出 7.5
# 比较两个浮点数是否接近(由于精度问题,不能直接用 == 比较)
import math
def is_close(a, b, tolerance=1e-9):
return math.isclose(a, b, rel_tol=tolerance)
x = 1.23456789
y = 1.23456788
print(is_close(x, y)) # 输出 True (如果差值在容忍范围内)
2.3 字符串
在 Python 中,字符串(str)是由字符组成的不可变序列。
字符串可以使用单引号 ‘ 、双引号 “ 或三引号 ‘’’(三个单引号)”””(三个双引号)来定义。
以下是一些创建字符串的示例:
s1 = 'Hello'
s2 = "World"
s3 = '''This is a
multiline string'''
s4 = """Another multiline
string"""
字符串的操作非常丰富,例如:
- 字符串连接:使用 + 运算符。
- 字符串重复:使用 * 运算符。
- 字符串索引和切片:可以通过索引获取单个字符,通过切片获取子字符串。
- 字符串查找和替换:find()、replace() 等方法。
- 字符串大小写转换:lower()、upper() 等方法。
以下是一些示例代码:
s = "Hello, World!"
# 连接字符串
new_s = s + " How are you?"
print(new_s)
# 重复字符串
repeated_s = s * 3
print(repeated_s)
# 索引
print(s[0])
# 切片
print(s[7:12])
# 查找
print(s.find("World"))
# 替换
new_s = s.replace("World", "Python")
print(new_s)
# 转换为小写
lower_s = s.lower()
print(lower_s)
# 转换为大写
upper_s = s.upper()
print(upper_s)
2.4 布尔值
在 Python 中,布尔值(bool)只有两个值:True(真)和 False(假)。
在 Python 中,许多对象在特定的上下文中会被解释为布尔值。例如,数值 0、空字符串 ‘’ 、空列表 [] 、空字典 {} 等在条件判断中会被视为 False ,而其他非零数值、非空字符串、非空列表和字典等会被视为 True 。
布尔值常用于条件判断和逻辑运算。以下是一些关于布尔值的示例:
# 直接赋值
is_valid = True
is_not_valid = False
# 比较运算的结果为布尔值
num1 = 5
num2 = 10
print(num1 < num2) # 输出 True
print(num1 == num2) # 输出 False
# 逻辑运算
and_result = True and False # 输出 False
or_result = True or False # 输出 True
not_result = not True # 输出 False
2.5 列表(list)
在 Python 中,list(列表)是一种有序且可变的数据结构,可以存储不同类型的元素。
列表使用方括号 [] 来创建,元素之间用逗号 , 分隔。
以下是一些创建和操作列表的示例:
# 创建列表
my_list = [1, 2, 3, "four", 5.5]
# 访问列表元素
print(my_list[0]) # 输出 1
print(my_list[3]) # 输出 "four"
# 列表切片
print(my_list[1:3]) # 输出 [2, 3]
# 修改列表元素
my_list[2] = 10
print(my_list) # 输出 [1, 2, 10, "four", 5.5]
# 添加元素到列表末尾
my_list.append(6)
print(my_list) # 输出 [1, 2, 10, "four", 5.5, 6]
# 在指定位置插入元素
my_list.insert(1, 7)
print(my_list) # 输出 [1, 7, 2, 10, "four", 5.5, 6]
# 删除指定元素
my_list.remove("four")
print(my_list) # 输出 [1, 7, 2, 10, 5.5, 6]
# 删除指定位置的元素
del my_list[0]
print(my_list) # 输出 [7, 2, 10, 5.5, 6]
# 列表排序
another_list = [5, 2, 8, 1, 3]
another_list.sort()
print(another_list) # 输出 [1, 2, 3, 5, 8]
# 列表反转
another_list.reverse()
print(another_list) # 输出 [8, 5, 3, 2, 1]
2.6 元组(tuple)
在 Python 中,tuple(元组)是一种有序且不可变的数据结构。
元组通常用于存储一组不可更改的数据,或者在需要保证数据不被意外修改的情况下使用。
元组使用小括号 () 来创建,元素之间用逗号 , 分隔。
以下是一些关于元组的示例:
# 创建元组
my_tuple = (1, 2, 3, "four", 5.5)
# 访问元组元素
print(my_tuple[0]) # 输出 1
print(my_tuple[3]) # 输出 "four"
# 元组切片
print(my_tuple[1:3]) # 输出 (2, 3)
# 但不能修改元组元素(因为元组不可变)
# my_tuple[2] = 10 # 会报错
# 可以对元组进行拼接
new_tuple = my_tuple + (6, 7)
print(new_tuple) # 输出 (1, 2, 3, 'four', 5.5, 6, 7)
2.7 字典(dict)
在 Python 中,dict(字典)是一种无序的键值对数据结构。
字典使用花括号 {} 来创建,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔。
以下是一些关于字典的示例:
# 创建字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 访问字典中的值
print(my_dict['name']) # 输出 'Alice'
# 添加新的键值对
my_dict['job'] = 'Engineer'
# 修改字典中的值
my_dict['age'] = 26
# 删除键值对
del my_dict['city']
# 检查键是否存在
if 'name' in my_dict:
print('Key "name" exists')
# 获取字典的所有键
keys = my_dict.keys()
print(keys) # 输出 dict_keys(['name', 'age', 'job'])
# 获取字典的所有值
values = my_dict.values()
print(values) # 输出 dict_values(['Alice', 26, 'Engineer'])
# 获取字典的所有键值对
items = my_dict.items()
print(items) # 输出 dict_items([('name', 'Alice'), ('age', 26), ('job', 'Engineer')])
# 遍历字典
for key, value in my_dict.items():
print(f'Key: {key}, Value: {value}')
2.8 集合(set)
在 Python 中,set(集合)是一种无序且不包含重复元素的数据结构。
集合常用于需要快速判断元素是否存在、去除重复元素以及进行集合运算的场景。
集合使用花括号 {} 来创建,或者可以使用 set() 函数将其他可迭代对象转换为集合。
以下是一些关于集合的示例:
# 创建集合
my_set = {1, 2, 3, 4, 5}
# 从列表创建集合,去除重复元素
my_list = [1, 2, 2, 3, 3, 3]
my_set_from_list = set(my_list)
print(my_set_from_list) # 输出 {1, 2, 3}
# 集合的基本操作
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 并集(包含两个集合中的所有元素)
union_set = set1.union(set2)
print(union_set) # 输出 {1, 2, 3, 4, 5, 6, 7, 8}
# 交集(两个集合中共同的元素)
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出 {4, 5}
# 差集(在第一个集合中但不在第二个集合中的元素)
difference_set = set1.difference(set2)
print(difference_set) # 输出 {1, 2, 3}
# 对称差集(只在其中一个集合中出现的元素)
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # 输出 {1, 2, 3, 6, 7, 8}
# 添加元素
my_set.add(6)
# 删除元素
my_set.remove(3) # 如果元素不存在会抛出错误
my_set.discard(7) # 如果元素不存在不会抛出错误
# 检查元素是否在集合中
if 2 in my_set:
print("2 is in the set")