为什么这个简单的条件表达式不起作用?
Why is this simple conditional expression not working?
非常简单的一行:
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
工作正常。
你用错了。这样使用:
a = 2 if i in [1, 3, 6] else 7
一般形式为:
var = val1 if cond else val2
应该是
a = 2 if i in [1, 3, 6] else 7
您可以将其解读为:
a = (((2 if i in [1, 3, 6] else 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
工作正常。
你用错了。这样使用:
a = 2 if i in [1, 3, 6] else 7
一般形式为:
var = val1 if cond else val2
应该是
a = 2 if i in [1, 3, 6] else 7
您可以将其解读为:
a = (((2 if i in [1, 3, 6] else 7)))
也就是说,赋值符号右侧的表达式被完全计算,然后将结果赋值给左侧。表达式本身是由条件分隔的两个值。