2015-10-05 67 views
7

很简单行:为什么这个简单的条件表达式不起作用?

i = 3 
a = 2 if i in [1, 3, 6] else a = 7 

失败:

SyntaxError: can't assign to conditional expression 

而扩展为:

if i in [1, 3, 6]: 
    a = 2 
else: 
    a = 7 

工作正常。

+0

对不起,家伙,我不时忘记额外的'=',结果让人困惑,为什么线路不工作。 – Gabriel

回答

11

您错误地使用了它。使用这种方式:

a = 2 if i in [1, 3, 6] else 7 
+1

呃什么是id * ot,我总是忘记额外的'='。谢谢!我先选择了这个答案,因为它是先添加的。 – Gabriel

4

应该

a = 2 if i in [1, 3, 6] else 7 

你可以把它读作:

a = (((2 if i in [1, 3, 6] else 7))) 

这是说,在分配标志的右侧的表达式是充分评估并将结果分配到左侧。表达式本身是两个值由条件分开

相关问题