为什么"return 100 if i < 10 else pass"在Python中无效?
大家好;
def foo(i):
return 100 if i < 10 else pass
return 200 if i < 20 else pass
return 1
为什么这个在Python中不管用呢?我觉得这段代码应该和下面的代码效果一样:
def foo(i):
if i < 10:
return 100
elif i < 20:
return 200
else:
return 1
谢谢!
5 个回答
10
这样来看你的代码:
return (100 if (i < 10) else pass)
“pass”并不是一个可以返回的值。下面的代码是可以正常工作的:
def foo(i):
return 100 if i < 10 else (200 if i < 20 else 1)
10
return 100 if i < 10 else pass
你可以把它理解为 return (100 if i < 10 else pass)
,所以 pass
不是一个值。