勘误:3.7 运算符的优先级

图书审校 2020-12-21

更正说明

页码:P67

描述不严谨

原文

同一行内运算符等级相同,它们之间的优先级将根据位置顺序确定(先左后右).

修改

同一行内运算符等级相同,它们之间的优先级将根据位置顺序确定,大部分运算符遵循先左后右的顺序进行运算,而赋值运算、幂运算、逻辑非运算、位与运算、位非运算、符号运算、条件表达式,右侧会先于左侧被求值。

用词易误解

在表3.12 Python常用运算符优先级中:表示式,容易误解为表达式,实际上它表示一种语法格式的显示。

修改如下图。

优先级顺序颠倒

位异或(^)运算符的优先级高于位或(|)运算符。

lambda的准确官名为:lambda表达式,习惯称为λ表达式

漏掉赋值运算符

修改如下图。

示例演示

# 下面示例演示了同行条件表达式的运算顺序:先右后左
n = 1 if False else 2 if True else 3 	# 先执行右侧的if条件表达式
print(n) 	# 输出 6

详细解释

Python运算符列表及其优先顺序、结合性