elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [Python]Formas de saber si una palabra es palindromo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python]Formas de saber si una palabra es palindromo  (Leído 22,825 veces)
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
[Python]Formas de saber si una palabra es palindromo
« en: 24 Abril 2012, 06:49 am »

Hola, buen día a todos !

En esta oportunidad no vengo a dejar un graaaaaaaaaan material :P , pero siempre me gusta intentar hacer una misma cosa de varias maneras. Es por eso que decidí ver de cuantas formas podríamos hacer para verificar si una palabra es palíndromo. Bien, veamos el primero:
Código
  1. n = raw_input(">")
  2. if n.isdigit():
  3. d = [h for h in n]
  4. if d == d[::-1]:  print "El numero es capicua: %s"%(n)
  5. else: print "El numero no es capicua : %s"%(n)
  6. else:
  7. d = [h for h in n]
  8. if d == d[::-1]:  print "El texto es palindromo: %s"%(n)
  9. else: print "El texto no es palindromo : %s"%(n)
Como podemos apreciar el código es bastante sencillo , pedimos entrada por teclado. Verificamos si es la variables un dígito o no(if n.isdigit()). Luego la típica salida invirtiendo la cadena con variable[::-1].

Veamos otro código más sencillo aún:
Código
  1. variable = raw_input("Texto ::> ")
  2. print "Resultado:",[h for h in variable[::-1]] == [s for s in variable]
Apenas dos líneas :D , un ejemplo de salida sería:
Código:
jaavier@Debian:~/codigos$ python palindromo.py
Texto ::> reconocer
Resultado: True
jaavier@Debian:~/codigos$
Otro ejemplo muy similar sería:
Código
  1. var = raw_input("Texto ::> ")
  2. print "Respuesta:",var == var[::-1]
Con la misma salida que el anterior:
Código:
jaavier@Debian:~/codigos$ python palindromo.py
Texto ::> reconocer
Resultado: True
jaavier@Debian:~/codigos$
Y pues la manera más típica:
Código
  1. var = raw_input("Texto ::> ")
  2. if var==var[::-1]:
  3. print "Es Palindromo"
  4. else:
  5. print "No es palindromo"
También tenemos la famosa función lambda():
Código
  1. palindromo = lambda parametro: parametro==parametro[::-1]
  2. print palindromo(raw_input("Texto ::> "))
Nos devolverá True o False.
Y Pues si son unos amantes de la reducción de código como yo, pueden aplicar:
Código
  1. print (lambda d: d==d[::-1])(raw_input("Texto ::> "))
Y a ti , que forma se te ocurre ?

Fuente: http://rootcodes.com/pythonformas-de-saber-si-una-palabra-es-palindromo/

Saludos, Javier.


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [Python]Formas de saber si una palabra es palindromo
« Respuesta #1 en: 26 Abril 2012, 00:10 am »

Alternativa recursiva:
Código
  1. def palindromo(s):
  2.    return (len(s)<2)or(s[0]!=s[-1])or(palindromo(s[1:-1]))
  3.  
  4. print palindromo(raw_input())


En línea

0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: [Python]Formas de saber si una palabra es palindromo
« Respuesta #2 en: 26 Abril 2012, 01:19 am »

Alternativa recursiva:
Código
  1. def palindromo(s):
  2.    return (len(s)<2)or(s[0]!=s[-1])or(palindromo(s[1:-1]))
  3.  
  4. print palindromo(raw_input())
Muy buena !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines