python中的数字n和(n)有什么区别

python中的数字n和(n)有什么区别,python,python-3.x,int,Python,Python 3.x,Int,给我 print(type(1)) print(type((1))) print(id(1)) print(id((1))) 给我 print(type(1)) print(type((1))) print(id(1)) print(id((1))) 但是,(1)被识别为一个实例,而as1不是? 例如,在执行(1)时。在编辑器中,我得到了很多方法,例如位长度,共轭,添加等,但不是在执行1时 区别的原因是什么?(…)仅对表达式进行分组。对于整数,它还有一个副作用,即浮点小数的字符可以从属性

给我

print(type(1))
print(type((1)))
print(id(1))
print(id((1)))
给我

print(type(1))
print(type((1)))
print(id(1))
print(id((1)))
但是,
(1)
被识别为一个实例,而as
1
不是? 例如,在执行
(1)
时。在编辑器中,我得到了很多方法,例如
位长度
共轭
添加
等,但不是在执行
1

区别的原因是什么?

(…)
仅对表达式进行分组。对于整数,它还有一个副作用,即浮点小数的
字符可以从
属性访问运算符中消除歧义

所以

是一个语法错误,因为
位长度
不是实数的有效非整数部分。但是

1.bit_length()
是有效的Python语法,因为现在解析器不会将
标记作为数字文本的一部分

或者,添加一个空格:

(1).bit_length()
n和(n)是相同的表达式

但是要注意这个(n,)是一个元素的元组

id()不是比较表达式的方法。它告诉你如果 您的对象是同一个对象。Python处理的是小数目 特别是id()在任何python会话中都是相同的

所以你会有这种行为:

id()与is(1+1-1)的id(1)相同

但是对于较大的数字,id()会发生变化


使用==进行表达式比较。

要打印它,只需 Print(n1-n2)

请参见整数为何会有这种行为。
1 .bit_length()
>>> id(1),id(1+1-1)
(140246128484064, 140246128484064)
>>> id(3000000),id(3000000+1-1)
(140246130143120, 140246129522640)