Палиндром на Python

Почему этот код верный, а нижний нет? Для чего нужна temp?

n = int(input('type num: '))
rev = 0
temp=n

while(n>0):
    rev = (rev*10) + (n%10)
    n=n//10

if temp == rev:
    print('palindrom')
else:
    print('not')

2 код:

n = int(input('type num: '))
rev = 0

while(n>0):
    rev = (rev*10) + (n%10)
    n=n//10

if n == rev:
    print('palindrom')
else:
    print('not')

Ответы (1 шт):

Автор решения: Zhihar

потому что во втором случае вы меняете n и сравниваете потом с n:

if n == rev:
    print('palindrom')
else:
    print('not')

но из-за while(n>0): у вас n всегда при последующей проверке равно 0

именно поэтому в первом случае n и сохраняется предварительно в temp, чтобы потом сравнивать с первоначальным значением n

→ Ссылка