print(type(1))
print(type((1)))
给了我
<class 'int'>
另外
print(id(1))
print(id((1)))
给了我
1555424112
1555424112
但是(1)
被视为1
不是的实例?
例如,在做(1)
时。在编辑器中,我得到了许多方法,例如bit_length
,conjugate
,__add__()
等,但没有做1
。
区别的原因是什么?
答案 0 :(得分:13)
(..)
仅分组表达式。对于整数,它还具有副作用,即浮点小数的.
字符可以从.
属性访问运算符中消除歧义。
所以
1.bit_length()
是语法错误,因为bit_length
不是实数的有效非整数部分。但
(1).bit_length()
是有效的Python语法,因为现在解析器不会将.
标记视为数字文字的一部分。
或者,添加一个空格:
1 .bit_length()
答案 1 :(得分:2)
n和(n)是相同的表达式。
但请注意这个(n,)是一个元素的元组。
id()不是比较表达式的方法。它告诉你是否 你的对象是同一个对象。而且Python对待的数量很少 特别是在任何python会话中id()总是相同的。
所以你得到这种行为:
对于(1 + 1-1)
,id()与id(1)相同>>> id(1),id(1+1-1)
(140246128484064, 140246128484064)
但是对于较大的数字,id()会发生变化。
>>> id(3000000),id(3000000+1-1)
(140246130143120, 140246129522640)
使用==进行表达式比较。
答案 2 :(得分:-2)
要打印它,你就可以了 打印(n1-n2)