Python有三元条件运算符吗?
2022-09-05 00:41:37
Python中有三元条件运算符吗?
是的,它是在版本 2.5 中添加的。表达式语法为:
a if condition else b
首先进行求值,然后根据 的布尔值对 或 中的任意一个进行求值和返回。如果计算结果为 ,则计算并返回但被忽略,否则在计算和返回时被忽略。condition
a
b
condition
condition
True
a
b
b
a
这允许短路,因为只评估何时为真,根本不计算,但何时为假仅被评估,根本不计算。condition
a
b
condition
b
a
例如:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
请注意,条件语句是表达式,而不是语句。这意味着您不能在条件表达式中使用赋值语句或其他语句:pass
>>> pass if False else x = 3
File "<stdin>", line 1
pass if False else x = 3
^
SyntaxError: invalid syntax
但是,您可以使用条件表达式来分配变量,如下所示:
x = a if True else b
将条件表达式视为在两个值之间切换。当您处于“一个值或另一个值”的情况时,它非常有用,但它并没有做太多其他事情。
如果需要使用语句,则必须使用普通语句而不是条件表达式。if
请记住,由于以下几个原因,一些Pythonistas对此感到不满:
condition ? a : b
if
如果你在记住顺序时遇到困难,那么请记住,当大声朗读时,你(几乎)说出你的意思。例如,大声读作 。x = 4 if b > 8 else 9
x will be 4 if b is greater than 8 otherwise 9
官方文件: