【发布时间】:2020-12-28 10:38:15
【问题描述】:
下面是一些我认为我会逃脱的简单的事情:
foo = True
print('bar') if foo else pass
产生:
SyntaxError: invalid syntax
当然,我可以将pass 替换为None,这样就可以了。我只是好奇:为什么不通过工作?
【问题讨论】:
-
这不是三元语句。这是一个三元表达式。它在 表达式(不是语句)和
pass不是表达式之间进行选择。 -
pass不是变量,而是语句。您不能在 if-else 表达式中使用任何语句。您只能使用表达式。在 Python 3 中,print是一个函数,调用它是一个表达式。 -
使用三元语句在两个不同的值之间进行选择,而不是动作。
标签: python python-3.x conditional-operator