Python 什么是';can';t分配给文字';你是说蟒蛇?
这是一段很短的代码,但当我在python中执行这段代码时,会出现“cannotassigntoliteral”错误。当然,我知道这不能仅仅凭直觉在pyhon中执行,这是毫无疑问的。此代码应更改为Python 什么是';can';t分配给文字';你是说蟒蛇?,python,Python,这是一段很短的代码,但当我在python中执行这段代码时,会出现“cannotassigntoliteral”错误。当然,我知道这不能仅仅凭直觉在pyhon中执行,这是毫无疑问的。此代码应更改为 x=10, y=20 或 像这样。但是我无法解释为什么第一个代码在逻辑上是错误的。请帮帮我 你的错误是你认为x=10,y=20意味着x=10;y=20实际上它的意思是x=(10,y)=20。这是因为逗号创建了一个元组,而您不能将其分配给包含文字的元组(在本例中为10)。python如何处理此问题: x
x=10, y=20
或
像这样。但是我无法解释为什么第一个代码在逻辑上是错误的。请帮帮我 你的错误是你认为
x=10,y=20
意味着x=10;y=20
实际上它的意思是x=(10,y)=20。这是因为逗号创建了一个元组,而您不能将其分配给包含文字的元组(在本例中为10
)。python如何处理此问题:
x=10
y=20
它将第一个值指定给第一个变量,将第二个值指定给第二个变量:
A, B = C, D
这是因为python在内部使用逗号分隔的值生成“元组”:
A = C
B = D
当你这样做的时候
(A, B) = (C, D)
Python相信您正在做:
A = C, B = D
或:
但是C
在您的案例中是一个数字,而不是一个变量,因此:
(C, B) = D # Which is C = D[0] and B = D[1]
A = (C, B)
是:
或:
这是不可能的。您不能将某些内容分配给数字(10
)。执行10='something'
将给您SyntaxError:无法分配到literal
为了简化,只需在python控制台中执行:
(10, y) = 20
x = (10, y)
你也会有同样的错误。表达式
some\u variable=some\u literal,
使:(some\u literal,)
(C, B) = D # Which is C = D[0] and B = D[1]
A = (C, B)
x = 10, y = 20
x = (10, y) = 20
(10, y) = 20
x = (10, y)
10 = 1