如何在python中编写三元条件运算符? [复制]
Posted
技术标签:
【中文标题】如何在python中编写三元条件运算符? [复制]【英文标题】:How to write the ternary conditional operator in python? [duplicate] 【发布时间】:2012-02-27 11:17:39 【问题描述】:可能重复:Conditional operator in Python?
python中是否有类似c的运算符来检查条件是否成立并相应地赋值?
<condition> ? <operation> : <operation>
【问题讨论】:
请不要声称“世界上最好的语言”对于某些程序员来说是“最好的”。您可能不会在 python 中构建操作系统内核。就像你不会用锤子割断绳子一样。 您期待什么? Python 遵循 C 语法? @amit OP 可能的意思是“总体而言,考虑到整个事情......”;-) @joaquin:语言是工具。你拥有的工具越多——你就能更好地完成你想做的事情。就像锤子不比剪刀好,python 也不比 C 好。如果你同时掌握它们 [或一般来说:它们中的大多数],你可能会是最好的,并使用正确的工具来完成正确的任务。此外,由于我怀疑 OP 了解所有语言,因此他不能声称它比其他语言更好。 -1:做出假设然后问为什么不遵循假设是一个特别糟糕的问题。为什么不要求 ALTER 语句(来自 COBOL)?为什么不要求标签和 GOTO 的?为什么不要求随机语言的任何其他随机特征? 【参考方案1】:Python 中的语法不同。
<operation> if <condition> else <operation>
例如,
x = max(y, z)
大致相同:
x = z if z > y else y
【讨论】:
我还在某处看到:[<f_operation>, <t_operation>][condition]
它的优点是还可以将操作分组在一起,但在左侧而不是 OP 代码中的右侧
@joaquin:评估列表中的两个语句,所以它不像if
哦,我明白你的意思了。当b=0
这个x = [10, 3 / b][b > 0]
失败时
@benw:不正确。首先,括号是多余的,它与condition and true_option or false_option
相同。其次,它是不正确的:当true_option
为假时它会失败。例如,True and "" or "False"
将评估为"False"
,而"" if True else "False"
将评估为""
。
对,我知道我忘记了什么:(condition and [true_option] or [false_option])[0]
。自从 t if c else f
语法被引入以来,我已经忘记了它的方式。【参考方案2】:
Python 的设计理念之一似乎是尽可能使用单词而不是符号。在这种情况下,最好使用的词是if
和else
。但那些话已经被拿走了。所以 Python 有点作弊,并使用语法来区分控制流的 if
的版本与返回值的 if
的版本。
【讨论】:
以上是关于如何在python中编写三元条件运算符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章