在C ++中,Python等价于短格式“if”

可能重复:
Python三元运算符

有没有办法在Python中编写这个C / C ++代码? a = (b == true ? "123" : "456" )

非常感谢!

 a = '123' if b else '456' 

虽然a = 'foo' if True else 'bar'是执行三元if语句(python 2.5+)的更现代的方式,那么您的版本的1对1等价物可能是:

 a = (b == True and "123" or "456" ) 

…在Python中应该缩短为:

 a = b is True and "123" or "456" 

…或者如果你只是想testing一般b值的真实性…

 a = b and "123" or "456" 

? : ? :可以从字面上换出and or

我的神秘版本…

 a = ['123', '456'][b == True] 

有关更多信息,请参阅PEP 308 。