Python中C++短格式“if”的等价写法

140 投票
4 回答
164367 浏览
提问于 2025-04-15 15:43

有没有办法把这段C/C++代码用Python写出来呢?

a = (b == true ? "123" : "456" )

4 个回答

21

我的神秘版本...

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

虽然 a = 'foo' if True else 'bar' 是一种更现代的写法,用于三元条件语句(适用于 Python 2.5 及以上版本),但你可以用一种一对一的方式来写你的版本,可能是这样的:

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

... 在 Python 中可以简化为:

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

... 或者如果你只是想测试 b 的值是否为真...

a = b and "123" or "456"

? : 可以直接用 and or 来替代

255

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续运行。

比如说,你可能想要在用户输入一个数字后,程序才开始计算。这样可以避免程序在没有必要的时候就开始工作,节省资源。

此外,程序还可以根据不同的输入做出不同的反应。就像你问一个人问题,他们会根据问题的内容给出不同的答案。

总之,设定条件可以让程序更加智能和高效,确保它只在合适的时机做出反应。

a = '123' if b else '456'

撰写回答