python有三元运算符吗

发布时间:2019-06-07 20:24:09编辑:auto阅读(1929)

    所属网站分类: python基础 > 语法,变量,运算符


    作者:goodbody

    链接: http://www.pythonheidong.com/blog/article/12/

    来源:python黑洞网 www.pythonheidong.com

     

    很多人以为Python是没有三元运算符的,但实际上python是有的。

    它是在2.5版本中添加的。语法是:

     

    a if condition else b

    首先condition进行求值,然后根据布尔值返回a或者b返回, 如果求值为true,则返回a,否则返回b。

    例如:

    >>> '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 

    在这种情况下,您必须使用普通if语句而不是条件语句。


    请记住,由于以下几个原因,一些人对此感到不满:

    • 参数的顺序与许多其他语言(例如C,Ruby,Java等)不同,当不熟悉Python的“惊人”行为的人使用它时(可能会颠倒顺序),这可能会导致错误。
    • 有些人认为它“笨拙”,因为它与正常的思维流程相反(首先考虑条件然后考虑影响)。
    • 文体的原因。




     

关键字