Pythonif语句语法错误问题
Python if statement syntax error problems
我没有得到 pythonif
语句的一些语法:
>> 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
>>
我不知道 Correct
行和 Wrong
行之间的这种语法和区别?
您使用的 A if condition else B
语法是正确的,其中 returns 一个 表达式 被分配给您的 z
变量
你在错误的地方省略了 else
子句,所以 Python 无法猜测在不满足你的条件 all([2<3,6<7])
的情况下要放什么,这是'不可行,所以不允许
如果您只想在这种情况下设置一个值,则:
if <condition>:
z = [0]
或者如果你喜欢单线:if <condition>: z = [0]
使用此语法时不能跳过 else
。参见:http://en.wikipedia.org/wiki/%3F:#Python
列表推导式不是那样工作的,您认为是这样;
def sm():
if somethingelse:
return something
return something1
可能吧?在这种情况下,我们不必编写 else
,因为如果 if
语句有效,则功能由 return something
完成。但在列表理解中它不是那样的。如您所知,您不必在 lambda
中也写 else
因为 lambda 也是一个函数,就像上面的例子一样。
我没有得到 pythonif
语句的一些语法:
>> 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
>>
我不知道 Correct
行和 Wrong
行之间的这种语法和区别?
您使用的 A if condition else B
语法是正确的,其中 returns 一个 表达式 被分配给您的 z
变量
你在错误的地方省略了 else
子句,所以 Python 无法猜测在不满足你的条件 all([2<3,6<7])
的情况下要放什么,这是'不可行,所以不允许
如果您只想在这种情况下设置一个值,则:
if <condition>:
z = [0]
或者如果你喜欢单线:if <condition>: z = [0]
使用此语法时不能跳过 else
。参见:http://en.wikipedia.org/wiki/%3F:#Python
列表推导式不是那样工作的,您认为是这样;
def sm():
if somethingelse:
return something
return something1
可能吧?在这种情况下,我们不必编写 else
,因为如果 if
语句有效,则功能由 return something
完成。但在列表理解中它不是那样的。如您所知,您不必在 lambda
中也写 else
因为 lambda 也是一个函数,就像上面的例子一样。