Python:"myvar = 1000," 是做什么的?
Python: What does "myvar = 1000," do?
早些时候我正在编写一些代码,当我在创建变量 myvar 时出现错字,它并没有通过错误或不同的行为。这是行:
myvar, var2 = 1000, 1000,
为什么没有报错?
对于新示例,您实际上仍在处理元组。
如果你打印出右边是什么,你会得到
testVar = 1000, 1000,
print(testVar)
# result:
(1000,1000)
幕后实际发生的事情是 Python 看到一个元组,然后将其解包为两个值并将一个分配给 myvar
,另一个分配给 var2
。在一天结束时,右侧仍然充当元组。
事实上,我们知道这是真的另一种方式是,如果我们尝试解压缩它但我们没有提供足够的变量:
myvar, = 1000, 1000,
这会引发异常:
ValueError: too many values to unpack (expected 1)
您正在生成一个元组并同时将其解压缩到两个不同的变量中。你可以检查
mytuple = 1000, 1000,
这将生成一个 tuple
的 (1000,1000)
无论最后的逗号是否存在(后面没有值)。
您将生成一个大小为 1 的元组
mytuple = 1000,
现在,您将在下一步中使用
有效地破坏元组
myvar, var2 = 1000, 1000,
最后你有两个int类型的变量。
您已经编辑了 post,所以现在它会问一个不同的问题。
In [1]: myvar = 10, 10
In [2]: myvar
Out[2]: (10, 10)
In [3]: myvar[0]
Out[3]: 10
In [4]: myvar, myvar2 = 10, 10
In [5]: myvar
Out[5]: 10
In [6]: myvar2
Out[6]: 10
In [7]: myvar, myvar2 = [10, 100] # A list
In [8]: myvar
Out[8]: 10
In [9]: myvar2
Out[9]: 100
早些时候我正在编写一些代码,当我在创建变量 myvar 时出现错字,它并没有通过错误或不同的行为。这是行:
myvar, var2 = 1000, 1000,
为什么没有报错?
对于新示例,您实际上仍在处理元组。 如果你打印出右边是什么,你会得到
testVar = 1000, 1000,
print(testVar)
# result:
(1000,1000)
幕后实际发生的事情是 Python 看到一个元组,然后将其解包为两个值并将一个分配给 myvar
,另一个分配给 var2
。在一天结束时,右侧仍然充当元组。
事实上,我们知道这是真的另一种方式是,如果我们尝试解压缩它但我们没有提供足够的变量:
myvar, = 1000, 1000,
这会引发异常:
ValueError: too many values to unpack (expected 1)
您正在生成一个元组并同时将其解压缩到两个不同的变量中。你可以检查
mytuple = 1000, 1000,
这将生成一个 tuple
的 (1000,1000)
无论最后的逗号是否存在(后面没有值)。
您将生成一个大小为 1 的元组
mytuple = 1000,
现在,您将在下一步中使用
有效地破坏元组myvar, var2 = 1000, 1000,
最后你有两个int类型的变量。
您已经编辑了 post,所以现在它会问一个不同的问题。
In [1]: myvar = 10, 10
In [2]: myvar
Out[2]: (10, 10)
In [3]: myvar[0]
Out[3]: 10
In [4]: myvar, myvar2 = 10, 10
In [5]: myvar
Out[5]: 10
In [6]: myvar2
Out[6]: 10
In [7]: myvar, myvar2 = [10, 100] # A list
In [8]: myvar
Out[8]: 10
In [9]: myvar2
Out[9]: 100