💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 运算符优先级 如果你有一个如`2 + 3 * 4`那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。 下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。 下面这张表(与Python参考手册中的那个表一模一样)已经顾及了完整的需要。事实上,我建议你使用圆括号来分组运算符和操作数,以便能够明确地指出运算的先后顺序,使程序尽可能地易读。例如,`2 + (3 * 4)`显然比`2 + 3 * 4`清晰。与此同时,圆括号也应该正确使用,而不应该用得过滥(比如`2 + (3 + 4)`)。 | 运算符 | 描述 | | :-: | :-: | | lambda | Lambda表达式 | | or | 布尔“或” | | and | 布尔“与” | | not x | 布尔“非” | | in,not in | 成员测试 | | is,is not | 同一性测试 | | <,<=,>,>=,!=,== | 比较 | | | | 按位或 | | ^ | 按位异或 | | & | 按位与 | | <<,>> | 移位 | | +,- | 加法与减法 | | *,/,% | 乘法、除法与取余 | | +x,-x | 正负号 | | ~x | 按位翻转 | | ** | 指数 | | x.attribute | 属性参考 | | x[index] | 下标 | | x[index:index] | 寻址段 | | f(arguments...) | 函数调用 | | (experession,...) | 绑定或元组显示 | | [expression,...] | 列表显示 | | {key:datum,...} | 字典显示 | | 'expression,...' | 字符串转换 | 其中我们还没有接触过的运算符将在后面的章节中介绍。 在表中列在同一行的运算符具有 相同优先级 。例如,`+`和`-`有相同的优先级。 默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。例如,你想要在一个表达式中让加法在乘法之前计算,那么你就得写成类似`(2 + 3) * 4`的样子。 运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算。例如,`2 + 3 + 4`被计算成`(2 + 3) + 4`。一些如赋值运算符那样的运算符是由右向左结合的,即`a = b = c`被处理为`a = (b = c)`。