如何在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

【讨论】:

我还在某处看到:[&lt;f_operation&gt;, &lt;t_operation&gt;][condition] 它的优点是还可以将操作分组在一起,但在左侧而不是 OP 代码中的右侧 @joaquin:评估列表中的两个语句,所以它不像if 哦,我明白你的意思了。当b=0 这个x = [10, 3 / b][b &gt; 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 的设计理念之一似乎是尽可能使用单词而不是符号。在这种情况下,最好使用的词是ifelse。但那些话已经被拿走了。所以 Python 有点作弊,并使用语法来区分控制流的 if 的版本与返回值的 if 的版本。

【讨论】:

以上是关于如何在python中编写三元条件运算符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python有三元条件运算符吗?

Python有三元条件运算符吗?

FizzBu​​zz 使用三元条件运算符

Python算术运算符赋值运算符关系运算符逻辑运算符条件运算符(三元运算符)

python条件(三元)运算符

如何在三元条件运算符中使用 Optional 变量?