Python相当于C++中的短格式"if"

huy*_*huy 111 c++ python syntax

可能重复:
Python三元运算符

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

Sil*_*ost 208

a = '123' if b else '456'
Run Code Online (Sandbox Code Playgroud)

  • 这个三元运算符是在Python 2.5中引入的. (10认同)
  • 为了便于将来参考,这里是条件表达式的 Python 文档:http://docs.python.org/reference/expressions.html#boolean-operations (2认同)

jdi*_*jdi 18

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

a = (b == True and "123" or "456" )
Run Code Online (Sandbox Code Playgroud)

...在python中应缩短为:

a = b is True and "123" or "456"
Run Code Online (Sandbox Code Playgroud)

......或者如果你只想测试一般b值的真实性......

a = b and "123" or "456"
Run Code Online (Sandbox Code Playgroud)

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

  • 这是什么样的黑魔法?谢谢 (2认同)

小智 15

我神秘的版本......

a = ['123', '456'][b == True]
Run Code Online (Sandbox Code Playgroud)