在c语言和c++中我们经常会用到自增或者自减的语句,但对于python中如果运用这种格式便会报错…why?
一、预备知识 小整数池python中为了提高储存效率,对于int类型的整型变量的储存,有一个专门的小整数池,它会存放-5到256的整形数值,并对应相应的地址。当我们调用这个区间内的整型数值时,系统会从小整数池中将需要的数字拿出。
二、正文 对于c语言,当我们定义一个变量并对其赋值的时候,它会先分配一个内存地址,然后将我们赋予的值储存到该地址当中。 但对于python它是从整数池中取得该对象。 因此当我们使用自增或者自减(i++或i–)的时候,它相当于对对象本身进行运算,但python中规定,数值对象是不能够改变的。例:1:
aa = 4
print(id(aa))
bb = 4
print(id(bb))
cc = -5
print(id(cc))
dd = -5
print(id(dd))
运行结果:
140709747410688
140709747410688
140709747410400
140709747410400
例2:
aa = 4
aa++
print(aa)
运行结果:
该程序会自动报错
例3:
aa = 4
aa+=1
print(aa)
运行结果:
5
aa+=1,这个语句相当于aa = aa + 1,它与自增不同,相当于先执行等号右边的aa + 1,然后重新生成了一个变量aa,并等号右边的值赋给新生成的aa变量。
瑾疏 原创文章 5获赞 9访问量 163 关注 私信 展开阅读全文