Python if语句语法错误问题

Python if语句语法错误问题,python,if-statement,syntax,syntax-error,Python,If Statement,Syntax,Syntax Error,我没有得到python中if语句的一些语法: >> z=[0 if all([2<3,6<7]) else sth] #Correct >> >> z=[0 if all([2<3,6<7])] #Wrong File "<stdin>", line 1 z=[0 if all([2<3,6<7])] ^ SyntaxE

我没有得到python中if语句的一些语法:

>> z=[0 if all([2<3,6<7]) else sth]    #Correct
>>
>> z=[0 if all([2<3,6<7])]             #Wrong
  File "<stdin>", line 1
    z=[0 if all([2<3,6<7])]
                          ^
SyntaxError: invalid syntax
>>
>z=[0如果全部([2

>>z=[0 if all([2您使用的是正确的
A if条件else B
语法,它返回一个要分配给
z
变量的表达式


在错误的语法中,您省略了
else
子句,因此Python无法猜测在您的条件
all([2在使用此语法时不能跳过
else

def sm():
    if somethingelse:
        return something
    return something1

可能吗?在这种情况下,我们不必写
else
,因为如果
如果
语句起作用,函数是通过
返回某个东西来完成的。但在列表理解中不是这样的。正如你所知,你不必在
lambda
中也写
else
,因为lambda也是一个函数,就像上面的例子一样。

为了澄清,假设
all
条件为false。您希望为
z
分配什么值?
def sm():
    if somethingelse:
        return something
    return something1