表达式是 Python 编程中的基本构建块,它由一个或多个操作数和运算符组成,用于计算并返回一个值。本文将详细介绍 Python 中的各类表达式及其用法,帮助你更好地理解和掌握。
1. 算术表达式
算术表达式用于执行数学运算,常见的运算符包括加法、减法、乘法、除法等。
a = 5
b = 3
result = a + b # 加法
result = a / b # 除法
result = a // b # 地板除
result = a % b # 取余
result = a ** b # 幂运算
2. 比较表达式
比较表达式用于比较两个值,返回布尔值 True
或 False
。
a = 5
b = 3
result = a > b # 大于
result = a <= b # 小于等于
3. 逻辑表达式
逻辑表达式用于连接布尔值,返回布尔值 True
或 False
。
a = True
b = False
result = a and b # 逻辑与
result = a or b # 逻辑或
result = not a # 逻辑非
4. 赋值表达式
赋值表达式用于将一个值赋给一个变量。
a = 5 # 赋值表达式
b = a + 3 # 计算并赋值
海象运算符(Python 3.8+)
海象运算符(:=
)允许在表达式中直接给变量赋值。
n = len(data) # 先计算长度并赋值给n
if n > 10: # 使用n进行条件判断
print(f"列表长度大于10,长度为{n}")
# 使用海象表达式
if (n := len(data)) > 10: # 给n赋值并使用
print(f"列表长度大于10,长度为{n}")
5. 成员表达式
成员表达式用于检查一个值是否在序列、集合或字典中。
a = [1, 2, 3]
result = 2 in a # 检查2是否在列表a中
result = 4 not in a # 检查4是否不在列表a中
6. 身份表达式
身份表达式用于比较两个对象的身份(即是否是同一个对象),返回布尔值。
a = [1, 2]
b = a
result = a is b # 判断a和b是否是同一个对象
result = a is not b # 判断a和b是否不是同一个对象
7. 三元表达式
三元表达式是简化的 if-else
表达式,根据条件选择两个值之一。
a = 5
b = 3
result = a if a > b else b # 如果a > b,result为a,否则为b
8. 函数调用表达式
函数调用表达式用于调用函数并返回结果。
def add(x, y):
return x + y
result = add(5, 3) # 函数调用表达式
9. 推导式
推导式是 Python 特有的一种表达式形式,用于简洁地创建列表、字典和集合。
9.1 列表推导式
a = [1, 2, 3, 4]
result = [x * 2 for x in a] # 创建一个新列表,元素是原列表每个元素的两倍
9.2 字典推导式
a = ['a', 'b', 'c']
result = {x: ord(x) for x in a} # 创建一个字典,将字母映射到对应的ASCII值
9.3 集合推导式
a = [1, 2, 3, 4]
result = {x * 2 for x in a} # 创建一个集合,元素是原列表每个元素的两倍
9.4 练习
生成1—10之间的数字,将其平方存入list01中。
将list01中所有偶数存入list02中。
将list01中所有大于5的奇数增加1后存入list03中。
要求都用列表推导式
list01 = [x ** 2 for x in range(1, 11)]
list02 = [x for x in list01 if x % 2 == 0]
list03 = [x + 1 for x in list01 if x > 5 and x % 2 != 0]
10. Lambda表达式
Lambda表达式用于创建小型、一次性的匿名函数。
f = lambda x, y: x + y # 创建一个匿名函数
result = f(2, 3) # 调用匿名函数
11. 生成器表达式
生成器表达式类似于列表推导式,但返回的是一个生成器对象,而不是一个完整的列表。
a = [1, 2, 3, 4]
result = (x * 2 for x in a) # 创建一个生成器,元素是原列表每个元素的两倍
12. 调用运算符 ()
圆括号用于控制运算顺序或在函数调用时传递参数。
result = (5 + 3) * 2 # 使用括号改变运算顺序
13. 表达式的求值顺序
Python 中的表达式按照运算符优先级规则求值。运算符优先级的规则决定了不同类型的运算在计算时的顺序。
14. 总结
-
算术表达式:用于数学运算。
-
比较表达式:用于比较值。
-
逻辑表达式:用于布尔运算。
-
赋值表达式:用于变量赋值。
-
成员表达式:用于检查值是否在序列中。
-
身份表达式:用于比较对象内存地址。
-
三元表达式:简化条件判断。
-
推导式:用于简洁地创建列表、字典和集合。
-
Lambda表达式:用于创建匿名函数。
-
生成器表达式:用于创建生成器对象。