当前位置: 首页 > 知识库问答 >
问题:

Python有三元条件运算符吗?

商德泽
2023-03-14

如果Python没有三元条件运算符,是否可以使用其他语言构造来模拟一个?

共有1个答案

印子平
2023-03-14

是的,是在2.5版本中添加的。表达式语法为:

a if condition else b

首先计算condition,然后根据condition的布尔值计算并返回AB中的一个。如果condition求值为true,则求值并返回A但忽略B;或者求值并返回B但忽略A

这允许短路,因为当条件为true时,只计算A而根本不计算B;而当条件为false时,只计算B而根本不计算A

例如:

>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'

注意,条件句是一个表达式,而不是一个语句。这意味着不能在条件表达式中使用赋值语句或pass或其他语句:

>>> pass if False else x = 3
  File "<stdin>", line 1
    pass if False else x = 3
          ^
SyntaxError: invalid syntax

但是,您可以使用条件表达式来赋值变量,如下所示:

x = a if True else b

将条件表达式视为在两个值之间切换。当你处于“一个值或另一个值”的情况时,它是非常有用的,但它没有太多的其他作用。

如果需要使用语句,则必须使用普通的If语句,而不是条件表达式。

请记住,有些Pythonists不喜欢它,原因有几个:

    参数的顺序与经典的 条件不同?a:B来自许多其他语言(如C、C++、Go、Perl、Ruby、Java、Javascript等)的三元运算符,当不熟悉Python“令人惊讶”的行为的人使用它时,可能会导致bug(他们可能会颠倒参数顺序)。
  • 有些人觉得它“笨拙”,因为它违背了正常的思维流程(先考虑条件,再考虑效果)。
  • 文体原因。(尽管'inlineif'非常有用,并使您的脚本更加简洁,但它确实会使您的代码复杂化)

如果你记不起顺序,那么请记住,当你大声朗读时,你(几乎)说出了你的意思。例如,x=4如果b>8否则9被大声读出,因为x将是4如果b大于8,否则9

正式文件:

  • 条件表达式
  • 有没有与C的“?:”三元运算符等价的?
 类似资料:
  • 问题内容: 如果Python没有三元条件运算符,是否可以使用其他语言构造来模拟一个? 问题答案: 它是在2.5版中添加的。表达式语法为: 第一被评估,则恰好中的任一个a或b进行评估并返回基于所述布尔值。如果为,则被评估并返回但被忽略,否则被评估为返回但被忽略。 这允许发生短路,因为仅当评估为时才进行评估,而b根本不评估,而当为 评估时,仅当评估时就完全不评估。 例如: 注意条件是表达式,而不是语句

  • 本文向大家介绍Python条件表达式(或“三元运算符”),包括了Python条件表达式(或“三元运算符”)的使用技巧和注意事项,需要的朋友参考一下 示例 三元运算符用于内联条件表达式。最好在易于阅读的简单,简洁的操作中使用。 参数的顺序与许多其他语言(例如C,Ruby,Java等)不同,当不熟悉Python的“令人惊讶”行为的人使用它时,它们可能会导致错误(它们可能会颠倒顺序)。 有些人认为它“笨

  • 三元运算符 三元运算符 ? 应该只用在它能让代码更加清楚的地方。 一个条件语句的所有的变量应该是已经被求值了的。类似 if 语句,计算多个条件子句通常会让语句更加难以理解。或者可以把它们重构到实例变量里面。 推荐: result = a > b ? x : y; 不推荐: result = a > b ? x = c > d ? c : d : y; 当三元运算符的第二个参数(if 分支)返回和条

  • 问题内容: 是否可以在Python中一行执行此操作? 我已经尝试过三元运算符: 但是我的IDE(MyEclipse)不喜欢它,没有一个。 问题答案: 是的,您可以这样做: 如果为假,则短路将开始,并且右侧将不被评估。如果为true,则将评估右侧并添加元素。 我只是指出,执行上述操作是完全非Python的,无论如何,最好编写此代码: 示范:

  • rank ▲ ✰ vote url 5 1187 203 1370 url 在Python中有三元运算符吗? 如果没有,可以像其他语言用的简单方法来实现吗? 有,在2.5版本中加入.对于python初学者可能有点难以理解,所以要记住了. 语法如下: a if test else b 根据test的布尔值来判断返回的是a还是b;如果test为真则返回a,反之则返回b. 来个大栗子: >>> 'tr

  • 实际上,三元运算符的语言示例中是否有一个内置的不是以下形式的(条件运算符)? 我不是在找一种特定的语言,虽然至少有中等程度的流行度会更好。