Python reverse () para palíndromos

Apenas me estoy iniciando en Python, y estoy tratando de probar una cadena introducida por el usuario como un palíndromo. Mi código es:

x=input('Please insert a word') y=reversed(x) if x==y: print('Is a palindrome') else: print('Is not a palindrome') 

Esto siempre devuelve falso porque y se convierte en algo así como lugar de la cadena invertida. ¿De qué estoy siendo ignorante? ¿Cómo harías para codificar este problema?

Prueba y = x[::-1] . Esto utiliza el empalme para obtener el reverso de la cadena.

reversed(x) devuelve un iterador para recorrer en bucle los caracteres de la cadena en orden inverso, no una cadena que pueda comparar directamente con x .

reversed devuelve un iterador, que puede convertir en una cadena usando el método de join :

 y = ''.join(reversed(x)) 

Para futuras referencias, una lambda de las respuestas anteriores para una rápida comprobación de Palindrome:

 isPali = lambda num: str(num) == str(num)[::-1] 

ejemplo de uso:

 isPali(9009) #returns True 

Prueba este código.

 def pal(name): sto_1 = [] for i in name: sto_1.append(i) sto_2 = [] for i in sto_1[::-1]: sto_2.append(i) for i in range(len(name)): if sto_1[i] == sto_2[i]: return "".join(sto_1), "".join(sto_2) else: return "no luck" name = raw_input("Enter the word :") print pal(name) 
 list(reverse( mystring )) == list( mystring ) 

o en el caso de números

 list(reverse( str(mystring) )) == list( str(mystring) ) 

Prueba este código:

 def palindrome(string): i = 0 while i < len(string): if string[i] != string[(len(string) - 1) - i]: return False i += 1 return True 

palíndromo de impresión ("hannah")