为什么"如果我<10 else传递返回100"在python中无效?

use*_*514 5 python if-statement

所有;

def foo(i):
    return 100 if i < 10 else pass
    return 200 if i < 20 else pass
    return 1
Run Code Online (Sandbox Code Playgroud)

为什么这在python中不起作用?我想这段代码可能与以下内容相同:

def foo(i):
    if i < 10:
        return 100
    elif i < 20:
        return 200
    else: 
        return 1
Run Code Online (Sandbox Code Playgroud)

谢谢!

mou*_*uad 20

文档中,您将看到"三元运算符"应如下所示:

conditional_expression ::=  or_test ["if" or_test "else" expression]
expression             ::=  conditional_expression | lambda_expr
Run Code Online (Sandbox Code Playgroud)

并且pass是一种陈述而不是表达


Aby*_*byx 10

return 100 if i < 10 else pass

你应该阅读它,因为return (100 if i < 10 else pass)pass不是一个价值


Flo*_*anx 10

像这样读你的代码:

return (100 if (i < 10) else pass)
Run Code Online (Sandbox Code Playgroud)

pass不是您可以返回的值.以下代码可以工作:

def foo(i):  
    return 100 if i < 10 else (200 if i < 20 else 1) 
Run Code Online (Sandbox Code Playgroud)