【凤凰社】Python是否具有三元条件运算符?

是的,它是在2.5版中添加表达式语法为:

a if condition else b

第一condition被评估,则恰好中的任一个ab进行评估并返回基于所述布尔condition如果conditionTruea则被评估并返回但b被忽略,否则b被评估为返回但a被忽略。

这允许发生短路,Beacuseconditiona评估为true时才进行评估,而b根本不评估,而当condition为false评估时,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

But,您可以使用条件表达式来分配变量,如下所示:

x = a if True else b

本文首发于python黑洞网,博客园同步跟新

 

0 评论

回复