难过这行得通:
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/