Python 使用递增和递减运算符 | 您所在的位置:网站首页 › 递加的拼音怎么写 › Python 使用递增和递减运算符 |
Python 使用递增和递减运算符
Python 没有一元的递增/递减运算符(++/–)。取而代之的是,要增加一个值,请使用 a += 1要递减一个值,使用− a -= 1 示例 >>> a = 0 >>> >>> #Increment >>> a +=1 >>> >>> #Decrement >>> a -= 1 >>> >>> #value of a >>> a 0Python不提供多种方式来完成同样的事情。 然而,如果你从像C语言这样的语言过度到Python,一定要小心,Python没有C语言中那种“变量”的概念,而是使用名字和对象来表示变量,而在Python中,整数(int)是不可变的。 我们通过一个例子来理解一下: >>> a =1 >>> print(id(a)) 1919375088 >>> print(hex(id(a))) 0x726756f0所以在Python中,上述语句的意思是:创建一个类型为int的对象,它的值为1,并将其命名为a。这个对象是一个值为1的int的实例,命名为a引用它。分配的名字a和它所引用的对象是不同的。 现在让我们增加a。 >>> a +=1 >>> print(id(a)) 1919375104 >>> print(hex(id(a))) 0x72675700由于int是不可变的,因此Python将以上语句理解为 查找a所引用的对象(它是一个int,id为0x726756f0)查找对象0x726756f0的值(它是1)。 将该值加上1(1 + 1 = 2) 创建一个新的int对象,其值为2(对象的id是0x72675700)。 将名称重新绑定到此新对象(0x72675700) 现在,a引用对象0x72675700,之前的对象(0x726756f0)不再由名称a引用。如果没有其他名称引用原始对象,它将在稍后被垃圾回收。 因此,根据以上的解释,可以理解当我们执行: a += 1 这会将a重新赋值为 a+1 。这不是一个递增操作符,因为它不是增加a的值,而是重新赋值。 让我们通过更多的例子来理解上述递增/递减操作− >>> a = b = c =1 >>> id(a) 1919375088 >>> id(b) 1919375088 >>> id(c) 1919375088 >>> #Above all have the same id >>> >>> # Now increment a >>> a +=1 >>> id(a) 1919375104 >>> id(b) 1919375088 >>> id(c) 1919375088从上面你可以理解,我们有一个单一对象,a、b和c都指向它(一个具有id 1919375088的int型变量)。 在增加a的值后,现在a被重新赋值为 a+1 (id: 1919375104),而其他的 b 和 c 仍指向同一个对象(1919375088)。 此外,Python并没有++/–运算符。 >>> a =1 >>> ++a 1 >>> --a 1 |
CopyRight 2018-2019 实验室设备网 版权所有 |