代码之家  ›  专栏  ›  技术社区  ›  nelaaro

python在三元条件运算符中使用print()函数?

  •  0
  • nelaaro  · 技术社区  · 6 年前

    我不明白为什么失败了

    print('Yes') if True else print('No')
      File "<stdin>", line 1
        print('Yes') if True else print('No')
                                      ^
    SyntaxError: invalid syntax
    
    print('Yes') if True == False else print('No')
      File "<stdin>", line 1
        print('Yes') if True == False else print('No')
                                               ^
    SyntaxError: invalid syntax
    

    但这确实有效

    print('Yes') if True else True
    Yes
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Alex    6 年前

    这是因为在python 2中,当你写:

    print('Yes') if True else True
    

    实际上是

    print(('Yes') if True else True)
    

    所以你可以写:

    print('Yes') if True else ('No')
    

    或者,更漂亮一点

    print('Yes' if True else 'No')
    

    这意味着您只能对python2中print的“参数”使用三元运算。

        2
  •  0
  •   Lefty    6 年前

    这个 print 函数是python 2中的一个特殊语句,因此它不能用在三元运算符行的复杂表达式中。您的代码将在python 3中工作。