Ejercicio Palindromo en Python

Iniciado por Dracco07, 13 Marzo 2017, 00:27 AM

0 Miembros y 1 Visitante están viendo este tema.

Dracco07

Buen dia

Me podrían ayudar con un ejercicio que estoy haciendo..

Se trata de generar un objeto en Python que me diga si es palidromo o no la palabra que ingrese

hice este código pero no logro que me regrese la respuesta
no se que me hace falta.



#Hacer una Clase que tenga un metodo para que evalue si es
#o no palindromo..

class Cadenas:
    def __init__ (self, cad1):
        self.cad1=cad1
        #self.cad2=cad2
    def pal(self):
        cad1,c,i,nom,cad,x = '',0,0,'','',''
        i = len(cad1)
        nom = cad1.lower()
        while i != c:
            for x in nom:
                cad = x + cad
                c=c+1
            if nom==cad:
                print (cad1, " Es Palindromo")
            else:
                print (cad1, " No es Palindromo")
        return cad1

cad1 = str(input('Dame una palabra: '))
op1=Cadenas(cad1)
print(op1.pal)



Muchas gracias de antemano

tincopasan

no tengo ganas de ponerme a corregir tu código, así que haré otro que cumpla la misma función, para que veas donde puede estar el error.
Código (python) [Seleccionar]

class Palindromo:
    def __init__(self):
        self.__palabra = "Introduce una palabra"
    def palabra(self,cadena=""):
        if cadena!= "":
            resultado= cadena[::-1]
            if cadena == resultado:
                respuesta="Es un palindromo"
            else:
                respuesta="No es un palindromo"
            return respuesta
        else:
            return self.__palabra

palindromo=Palindromo()
pregunta=input("Escriba una palabra: ")
final=palindromo.palabra(pregunta)
print(final)



Dracco07

Muchas gracias

Ya lo he corregido, fue un error al no utilizar la variable de self.cad1
lo dejo por aqui...


##Hacer una Clase que tenga un metodo para que evalue si es
##o no palindromo..

class Cadenas:
    def __init__ (self, cad1):
        self.cad1=cad1
       
    def Pal(self):
        cad1 = self.cad1
        c,i,nom,cad,x = 0,0,'','',''
        i = len(cad1)
        nom = cad1.lower()
        while i != c:
            for x in nom:
                cad = x + cad
                c=c+1
            if nom==cad:
                #print (cad1, " Es Palindromo")
                return str(cad1 + " Es Palindromo")
            else:
                #print (cad1, " No es Palindromo")
                return str(cad1 + " No es Palindromo")

cad1 = input('Dame una palabra: ')
op1=Cadenas(cad1)

#op1.Pal()#Impresion de la funcion
print(op1.Pal())

tincopasan

que bueno que lo resolviste, pero... ¿tanto código para una palabra? si fuesen frases vaya y pase! se supone que hay que hacer las cosas funcionales y simples en vez de tanto código para lo mismo.