3.4 Python表达式
Python表达式是运算符
和操作数
进行有意义排列所得的组合。操作数可以是值
、变量
、标识符
等。单独的一个值或一个变量也是一个表达式。
表达式是Python程序中最常见的代码。
表达式是一段可以被求值
的代码。因为可以被求值,所以一般表达式可以写在赋值语句=
的右边。表达式可以作为语句的组成部分。
以下都是Python表达式:
5 + 3 |
3 ** 2 |
-66 |
a > 3 |
b == c |
d in e |
f is not g |
not h |
3.4.1 赋值表达式
一个常见用例是在处理匹配的正则表达式的时候:
if matching := pattern.search(data): |
do_something(matching) |
或者是在处理分块的文件流的时候:
while chunk := file.read(9000): |
process(chunk) |
3.4.2 条件表达式
条件表达式(有时称为三元运算符
)在所有 Python 运算中具有最低的优先级。表达式 x if C else y 首先是对条件 C 而非 x 求值。如果 C 为真,x 将被求值并返回其值;否则将对 y 求值并返回其值。其语法格式为:
为真时 if 条件表达式 else 为假时 # 斜体为需要替换的内容,下同
示例1:
>>> a = 5 if 3 > 2 else 1
>>> a
5
示例2
>>> print('hello') if 5 == 33 else print('world')
world
3.4.3 lambda 表达式
lambda 表达式(有时称为 lambda 构型)被用于创建匿名函数。表达式:
lambda 参数: 表达式
会产生一个函数对象。该未命名对象的行为类似于用以下方式定义的函数:
def <lambda>(*参数*): |
return 表达式 |
关于lambda表达式我们将会在函数章节进行详细介绍。
3.4.4 表达式的求值顺序
Python 按从左至右的顺序对表达式求值。但注意在对赋值操作求值时,右侧会先于左侧被求值。
练习
1、将教程中所有的表达式示例全部手敲一遍并熟悉