python - 尝试在一行 if 语句中使用 pass 关键字时出错

标签 python

难过这行得通:

if 5 % 2 == 0:
        print "no remainder"
else:
        pass

但不是这个:

print "no remainder" if 5% 2 == 0 else pass

SyntaxError: invalid syntax

最佳答案

后者不是 if 语句,而是一个表达式(我的意思是,print 是一个语句,但其余部分被解释为表达式,失败了) .表达式具有值。 pass 没有,因为它是一个语句。

您可能将其视为两个语句(print 或 pass),但解释器的看法不同:

expr = "no remainder" if 5% 2 == 0 else pass
print expr

第一行有问题,因为它混合了表达式和语句。

单行 if 语句是另一回事:

if 5 % 2 == 0: print "no remainder"

这可以称为单行 if 语句。

附言三元表达式在 official docs 中称为“条件表达式” .

三元表达式使用您尝试使用的语法,但它需要两个表达式 和一个条件(也是一个表达式):

expr1 if cond else expr2

如果 bool(cond) == True 则采用 expr1 的值,否则采用 expr2

关于python - 尝试在一行 if 语句中使用 pass 关键字时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114003/

相关文章:

python - 使用 Python 将列表从 MySQL 转换为 JSON 格式

Python:向极坐标图添加环形扇区或楔形

python - pydrive如何通过id/title读取文件

python - 在python中将字符串的第一个字母更改为大写

python - 我应该在 pip 的需求文件中输入什么来选择正确的 git 分支?

python - 如何修复来自 wxPython/wxFormBuilder 的 "memory leak of type ' wxPyXmlSubclassFactory *', no destructor found"错误?

Python 试图在 *args 之后放置关键字参数

javascript - Tornado :包含缩小的 javascript 的 UIModule

python - 对 python 代码进行故障排除

python - 字典、列表或集合末尾的额外逗号在 Python 中有什么特殊含义吗?