python垃圾回收机制不理解

问题遇到的现象和发生背景

对于python垃圾回收机制不太理解

用代码块功能插入代码,请勿粘贴截图
a = 100 * 100
b = 100 * 100
c = 99 * 99 + 2 * 99 + 1
print(id(a), id(b), id(c))

a = 100 ** 100
b = 100 ** 100
print(id(a), id(b))

运行结果及报错内容

为什么第二个a和b地址给的不一样,第一个一样,好困惑

abc第一次赋值有个id,第二次赋值实际上是重新定义,因此这输出的5个数值都应该不一样
测试结果也验证了:

img