Python中行内if...else语法的语法错误

5 浏览
0 Comments

Python中行内if...else语法的语法错误

以下代码段的语法有什么问题,为什么会出现问题?我已经数过括号等等,但仍然不能想出原因。

c = ""
 print("Yes") if c else print("No")

注意:会出现如下的语法错误:

print("Yes") if c else print("No")
                            ^
SyntaxError: invalid syntax

admin 更改状态以发布 2023年5月22日
0
0 Comments

这是因为在Python2和Python3中,print函数的行为不同:
在Python3中,您的代码可以完美地运行,但在Python2中,它会引发错误。
这是因为在Python2中,print实际上是一个语句而不是一个函数;在这里您可以找到关于函数和语句之间差异的更多深入的问答。

顺便说一句,您可以通过从未来导入Python3的print函数来解决问题:

from __future__ import print_function
c = ""
print("Yes") if c else print("No")

输出:

No

0