2024-06-16 08:26:09 发布
网友
x=10, y=20
这是一段很短的代码,但当我在python中执行这段代码时,会出现“cannotassigntoliteral”错误。当然,我知道这不能仅仅凭直觉在pyhon中执行,这是不可能的。此代码应更改为
x,y=10,20
或者
x=10 y=20
像这样。但是我无法解释为什么第一个代码在逻辑上是错误的。请帮帮我!你知道吗
你的错误是你认为x=10, y=20意味着x=10; y=20,而实际上它意味着x=(10, y)=20。这是因为逗号创建了一个元组,而不能将它赋给包含文本的元组(在本例中是10)。你知道吗
x=10; y=20
x=(10, y)=20
10
python对此做了什么:
A, B = C, D
它将第一个值赋给第一个变量,将第二个值赋给第二个变量:
A = C B = D
这是因为python在内部使用逗号分隔的值生成“元组”:
(A, B) = (C, D)
当你这么做的时候
A = C, B = D
Python相信您正在做:
A = (C, B) = D
或:
(C, B) = D # Which is C = D[0] and B = D[1] A = (C, B)
但是C在您的例子中是一个数字,而不是一个变量,所以:
C
x = 10, y = 20
是:
x = (10, y) = 20
(10, y) = 20 x = (10, y)
这是不可能的。你不能给一个数字赋值(10)。做10 = 'something'会给你SyntaxError: can't assign to literal。你知道吗
10 = 'something'
SyntaxError: can't assign to literal
为了更简单,只需在python控制台中执行:
10 = 1
你也会犯同样的错误。你知道吗
你的错误是你认为
x=10, y=20
意味着x=10; y=20
,而实际上它意味着x=(10, y)=20
。这是因为逗号创建了一个元组,而不能将它赋给包含文本的元组(在本例中是10
)。你知道吗python对此做了什么:
它将第一个值赋给第一个变量,将第二个值赋给第二个变量:
这是因为python在内部使用逗号分隔的值生成“元组”:
当你这么做的时候
Python相信您正在做:
或:
但是
C
在您的例子中是一个数字,而不是一个变量,所以:是:
或:
这是不可能的。你不能给一个数字赋值(
10
)。做10 = 'something'
会给你SyntaxError: can't assign to literal
。你知道吗为了更简单,只需在python控制台中执行:
你也会犯同样的错误。你知道吗
相关问题 更多 >
编程相关推荐