オブジェクトの参照を表す数値が見える

print(id("a")) # 140576450230568
print(id("b")) # 140576471436904

a = "a"
b = "b"

print(id(a)) # 140576450230568
print(id(b)) # 140576471436904

ab1 = a + b
ab2 = a + b
ab3 = ab1

print(id(ab1)) # 140576448953400
print(id(ab2)) # 140576448953456
print(id(ab3)) # 140576448953400
print(id("1")) # 140576448952896
print(id("2")) # 140576448952952

s = "1"
t = "2"

print(id(s)) # 140576448952896
print(id(t)) # 140576448952952

st1 = s + t
st2 = s + t
st3 = st1

print(id(st1)) # 140576448953512
print(id(st2)) # 140576448953568
print(id(st3)) # 140576448953512
print(id(1)) # 10914496
print(id(2)) # 10914528

x = 1
y = 2

print(id(x)) # 10914496
print(id(y)) # 10914528

xy1 = x + y
xy2 = x + y
xy3 = xy1

print(id(xy1)) # 10914560
print(id(xy2)) # 10914560
print(id(xy3)) # 10914560
print(id(123456789)) # 139698002811888
print(id(987654321)) # 139698002809552

p = 123456789
q = 987654321

print(id(p)) # 139698002811888
print(id(q)) # 139698002809552

pq1 = p + q
pq2 = p + q
pq3 = pq1

print(id(pq1)) # 1111111110
print(id(pq2)) # 1111111110
print(id(pq3)) # 1111111110

数値は足しても同じ値は同じになってるけど 文字列は結合したときに同じじゃない