栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python是否具有三元条件运算符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python是否具有三元条件运算符?

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

a if condition else b

首先

condition
进行评估,然后根据的布尔值对a或之一b进行评估并返回。如果为,则被评估并返回但被忽略,否则被评估并返回但被忽略。
conditionconditionTrueabba

这允许发生短路,因为

condition
仅当
a
评估为
true
时才进行评估,而b根本不评估,而当condition为
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 语句而不是条件表达式。

请记住,一些Pythonista对此不以为然,原因如下:

  • 参数的顺序不同于condition ? a : b许多其他语言(例如C,C ++,Go,Perl,Ruby,Java,Javascript等)的经典三元运算符的顺序,当人们不熟悉Python的“令人惊讶的”行为使用它(它们可能会颠倒参数顺序)。
  • 有些人认为它“笨拙”,因为它与正常的思维流程相反(先思考条件,然后思考效果)。

  • 风格上的原因。(尽管“内联if”可能确实有用,并且可以使脚本更简洁,但确实会使代码复杂化)
    如果您在记住顺序时遇到麻烦,请记住当大声朗读时,您(几乎)说出了您的意思。例如,x = 4 if b > 8 else 9将朗读为x will be 4 if b is greater than 8 otherwise 9。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号