难过这是有效的:
if 5 % 2 == 0:
print "no remainder"
else:
pass
Run Code Online (Sandbox Code Playgroud)
但不是这个:
print "no remainder" if 5% 2 == 0 else pass
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
Lev*_*sky 13
后者不是一个if语句,而是一个表达式(我的意思是,它print是一个语句,但其余的被解释为一个表达式,它失败了).表达式具有价值.pass没有,因为这是一个声明.
您可能会将其视为两个语句(print or pass),但解释器会以不同的方式看待它:
expr = "no remainder" if 5% 2 == 0 else pass
print expr
Run Code Online (Sandbox Code Playgroud)
并且第一行是有问题的,因为它混合了表达式和语句.
单行if声明是另一回事:
if 5 % 2 == 0: print "no remainder"
Run Code Online (Sandbox Code Playgroud)
这可以称为单行if语句.
PS三元表达式在官方文档中称为"条件表达式" .
三元表达式使用您尝试使用的语法,但它需要两个表达式和一个条件(也是一个表达式):
expr1 if cond else expr2
Run Code Online (Sandbox Code Playgroud)
并且它取得expr1if bool(cond) == True和expr2否则的值.
| 归档时间: |
|
| 查看次数: |
2367 次 |
| 最近记录: |