Python是否有三元条件运算符?
如果Python没有三元条件运算符,是否有可能使用其他语言构造来模拟一个条件运算符?
  是的,它是在2.5版本中添加的。 
  语法是: 
a if condition else b
  评估第一个condition ,然后根据condition的布尔值返回a或b 
  如果condition计算结果为真a则返回b ,否则返回b 。 
例如:
>>> '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
  在这种情况下,您必须使用正常的if语句而不是条件语句。 
请记住,它是由一些Pythonistas皱起了几个原因:
  如果您在记忆顺序时遇到问题,请记住,如果您大声读出它,您(几乎)会说出您的意思。  例如, x = 4 if b > 8 else 9 ,则x = 4 if b > 8 else 9被大声朗读, x will be 4 if b is greater than 8 otherwise 9 。 
官方文件:
你可以索引到一个元组中:
(falseValue, trueValue)[test]
  test需要返回True或False。 
  始终将其实施为: 
(falseValue, trueValue)[test == True]
  或者您可以使用内置的bool()来确保一个布尔值: 
(falseValue, trueValue)[bool(<expression>)]
对于2.5之前的版本,有一个诀窍:
[expression] and [on_true] or [on_false]
  当on_true具有假布尔值时,它可能会给出错误的结果 
  虽然它确实有评估表达从左到右的好处,在我看来这更清楚。 
1.是否有相当于C的“?:”三元运算符?
链接地址: http://www.djcxy.com/p/105.html上一篇: Does Python have a ternary conditional operator?
下一篇: How do I include a JavaScript file in another JavaScript file?
