Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python元组是由什么组成的?_Python_Tuples - Fatal编程技术网

python元组是由什么组成的?

python元组是由什么组成的?,python,tuples,Python,Tuples,以下代码没有打印我所期望的内容: #!/usr/bin/env python print type(1,) a = 1, print type(a) 以下是输出: <type 'int'> <type 'tuple'> 我知道逗号把一个数组变成了一个元组。但是如果是这样的话,为什么原始打印不是打印元组类型而是打印int呢?因为它没有括在括号中:类型((1,) 如果没有额外的括号,它将在此上下文中被视为一个简单的参数列表,后面的分号将被忽略。因为函数调用中的元组语

以下代码没有打印我所期望的内容:

#!/usr/bin/env python

print type(1,)
a = 1,
print type(a)
以下是输出:

<type 'int'>
<type 'tuple'>


我知道逗号把一个数组变成了一个元组。但是如果是这样的话,为什么原始打印不是打印元组类型而是打印int呢?

因为它没有括在括号中:
类型((1,)


如果没有额外的括号,它将在此上下文中被视为一个简单的参数列表,后面的分号将被忽略。

因为函数调用中的元组语法也是传递参数的方式:

>>> print type(1,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: type() takes 1 or 3 arguments

>>> print type((1,))
<type 'tuple'>

>>> a = 1,
>>> type(a)
<type 'tuple'>
都是相同的。

type()
是一个函数,因此python解析器将把
type
函数调用的括号之间的所有内容作为参数元组传递给该函数

因此,要将文本元组传递给函数调用,您始终需要向元组添加括号,以便解析器识别它:

print type((1,))

虽然这一点肯定是有争议的,但在参数列表中包含尾随逗号并不是语法错误的原因在于保持
(1,)
元组(1,)
[1,]
列表(1,)
之间的一致性。
print type((1,))