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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  programa convierte caracteres alfanumericos a morse (python)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programa convierte caracteres alfanumericos a morse (python)  (Leído 6,032 veces)
Glas.jfcc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
programa convierte caracteres alfanumericos a morse (python)
« en: 5 Junio 2012, 20:02 pm »

hola amigos aqui les dejo un codigo que convierte caracteres alfanumericos en su respectivo codigo Morse, me parece que debo compartirlo a alguien le puede servir de algo, saludos

Código
  1. # -*- coding: cp1252 -*-
  2. #convierte texto ingresado en pantalla a codico morse
  3. #by Glas (glas.jfcc@gmail.com)
  4. #----------------------------------------------------
  5.  
  6. #------------------------------------------
  7. def morse(caracter):
  8.    if caracter == 'a' or caracter == 'A':
  9.        codigo = '.-'
  10.    if caracter == 'b' or caracter == 'B':
  11.        codigo = '-...'
  12.    if caracter == 'c' or caracter == 'C':
  13.        codigo = '-.-.'
  14.    if caracter == 'd' or caracter == 'D':
  15.        codigo = '-..'
  16.    if caracter == 'e' or caracter == 'E':
  17.        codigo = '.'
  18.    if caracter == 'f' or caracter == 'F':
  19.        codigo = '..-.'
  20.    if caracter == 'g' or caracter == 'G':
  21.        codigo = '--.'
  22.    if caracter == 'h' or caracter == 'H':
  23.        codigo = '....'
  24.    if caracter == 'i' or caracter == 'I':
  25.        codigo = '..'
  26.    if caracter == 'j' or caracter == 'J':
  27.        codigo = '.---'
  28.    if caracter == 'k' or caracter == 'K':
  29.        codigo = '-.-'
  30.    if caracter == 'l' or caracter == 'L':
  31.        codigo = '.-..'
  32.    if caracter == 'm' or caracter == 'M':
  33.        codigo = '--'
  34.    if caracter == 'n' or caracter == 'N':
  35.        codigo = '-.'
  36.    if caracter == 'ñ' or caracter == 'Ñ':
  37.        codigo = '--.--'
  38.    if caracter == 'o' or caracter == 'O':
  39.        codigo = '---'
  40.    if caracter == 'p' or caracter == 'P':
  41.        codigo = '.--.'
  42.    if caracter == 'q' or caracter == 'Q':
  43.        codigo = '--.-'
  44.    if caracter == 'r' or caracter == 'R':
  45.        codigo = '.-.'
  46.    if caracter == 's' or caracter == 'S':
  47.        codigo = '...'
  48.    if caracter == 't' or caracter == 'T':
  49.        codigo = '_'
  50.    if caracter == 'u' or caracter == 'U':
  51.        codigo = '..-'
  52.    if caracter == 'v' or caracter == 'V':
  53.        codigo = '...-'
  54.    if caracter == 'w' or caracter == 'W':
  55.        codigo = '.--'
  56.    if caracter == 'x' or caracter == 'X':
  57.        codigo = '-..-'
  58.    if caracter == 'y' or caracter == 'Y':
  59.        codigo = '-.--'
  60.    if caracter == 'z' or caracter == 'Z':
  61.        codigo = '--..'
  62.    if caracter == '0':
  63.        codigo = '-----'
  64.    if caracter == '1':
  65.        codigo = '.----'
  66.    if caracter == '2':
  67.        codigo = '..---'
  68.    if caracter == '3':
  69.        codigo = '...--'
  70.    if caracter == '4':
  71.        codigo = '....-'
  72.    if caracter == '5':
  73.        codigo = '.....'
  74.    if caracter == '6':
  75.        codigo = '-....'
  76.    if caracter == '7':
  77.        codigo = '--...'
  78.    if caracter == '8':
  79.        codigo = '---..'
  80.    if caracter == '9':
  81.        codigo = '----.'
  82.    if caracter == '.':
  83.        codigo = '.-.-.-'
  84.    if caracter == ',':
  85.        codigo = '--..--'
  86.    if caracter == '?':
  87.        codigo = '..--..'
  88.    if caracter == '!':
  89.        codigo = '-.-.--'
  90.    if caracter == ' ':
  91.        codigo = ' '
  92.    return codigo
  93. #------------------------------------------
  94.  
  95. print 'COVERSOR TEXTO->MORSE'
  96. print '---------------------\n'
  97. texto = raw_input('> ')
  98.  
  99. for letra in texto:
  100.    print morse(letra)
  101.  
  102. raw_input()


En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: programa convierte caracteres alfanumericos a morse (python)
« Respuesta #1 en: 5 Junio 2012, 20:53 pm »

Puedes hacerlo mucho más sencillo con un diccionario, así te ahorras tanto condicional que ralentizan el programa. Si quieres practicar prueba a hacerlo así :)

Bueno es :)

Te dejo mi versión por si te decides a hacerlo, la tomes como ejemplo:

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. class morse:
  4. def __init__(self,texto):
  5. self.texto = texto
  6. self.diccionario = {"a":".-","b":"-...","c":"-.-.","d":"-..","e":".","f":"..-.","g":"--.","h":"....","i":"..","j":".---",
  7. "k":"-.-","l":".-..","m":"--","n":"-.","ñ":"--.--","o":"---","p":".--.","q":"--.-","r":".-.","s":"...","t":"_","u":"..-",
  8. "v":"...-","w":".--","x":"-..-","y":"-.--","z":"--..","0":"-----","1":".----","2":"..---","3":"...--","4":"....-",
  9. "5":".....","6":"-....","7":"--...","8":"---..","9":"----.","!":"-.-.--","?":"..--..",".":".-.-.-"," ":" ","'":"--..--"}
  10. self.parseador()
  11. def parseador(self):
  12. self.acumulador = ""
  13. for self.elemento in self.texto.lower():
  14. self.acumulador = self.acumulador + self.diccionario[self.elemento]
  15. print self.acumulador
  16. if __name__ == '__main__':
  17. texto = raw_input("Inserta el texto a morsear>")
  18. instancia = morse(texto)
  19.  
  20.  

Y se podría simplificar mucho más, sin usar POO:

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. texto,acumulador,diccionario= (raw_input("Inserta el texto a morsear>"),"",{"a":".-","b":"-...","c":"-.-.","d":"-..","e":".","f":"..-.","g":"--.","h":"....","i":"..","j":".---",
  4. "k":"-.-","l":".-..","m":"--","n":"-.","ñ":"--.--","o":"---","p":".--.","q":"--.-","r":".-.","s":"...","t":"_","u":"..-",
  5. "v":"...-","w":".--","x":"-..-","y":"-.--","z":"--..","0":"-----","1":".----","2":"..---","3":"...--","4":"....-",
  6. "5":".....","6":"-....","7":"--...","8":"---..","9":"----.","!":"-.-.--","?":"..--..",".":".-.-.-"," ":" ","'":"--..--"})
  7. for letra in texto.lower():
  8. acumulador = acumulador + diccionario[letra]
  9. print acumulador
  10.  
  11.  
  12.  
  13.  


« Última modificación: 5 Junio 2012, 21:32 pm por overxfl0w13 » En línea

[/url]
Glas.jfcc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: programa convierte caracteres alfanumericos a morse (python)
« Respuesta #2 en: 9 Junio 2012, 05:07 am »

hooo :o muy bien gracias por las respuestas, sabia que se podia hacer de forma mas simple sin los IF, gracias saludos.
En línea

Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: programa convierte caracteres alfanumericos a morse (python)
« Respuesta #3 en: 9 Junio 2012, 05:14 am »

Hola!
Además de lo que comentó overxfl0w13, puedes ahorrarte todos los "or", si, en vez de esto:
Código
  1. def morse(caracter):
  2.    if caracter == 'a' or caracter == 'A':
  3.        codigo = '.-'
  4.    if caracter == 'b' or caracter == 'B':
  5.        codigo = '-...'
  6.    if caracter == 'c' or caracter == 'C':
  7.        codigo = '-.-.'
  8. (...)
  9.    if caracter == 'x' or caracter == 'X':
  10.        codigo = '-..-'
  11.    if caracter == 'y' or caracter == 'Y':
  12.        codigo = '-.--'
  13.    if caracter == 'z' or caracter == 'Z':
  14. (...)

Usas esto:
Código
  1. def morse(caracter):
  2.    if caracter.lower() == 'a':
  3.        codigo = '.-'
  4.    if caracter.lower() == 'b':
  5.        codigo = '-...'
  6.    if caracter.lower() == 'c':
  7.        codigo = '-.-.'
  8. (...)
  9.    if caracter.lower() == 'x':
  10.        codigo = '-..-'
  11.    if caracter.lower() == 'y':
  12.        codigo = '-.--'
  13.    if caracter.lower() == 'z':
  14. (...)
  15.  

Esto es, pasando el caracter que estas comparando a minuscula y solo tomar en cuenta estas últimas ^^
Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
carácteres Alfanuméricos
Programación Visual Basic
Servia 4 2,705 Último mensaje 15 Diciembre 2008, 18:52 pm
por Servia
Python ~ Cambiar carácteres en una frase
Scripting
randomcito 3 10,949 Último mensaje 1 Junio 2013, 20:55 pm
por FreeWorlds
[Python] Vocales y carácteres « 1 2 »
Scripting
Meta 12 13,945 Último mensaje 29 Julio 2014, 21:26 pm
por Eleкtro
[Python] carácteres y espacios « 1 2 »
Scripting
Meta 19 26,485 Último mensaje 27 Octubre 2010, 18:15 pm
por Meta
[python] manejo de caracteres en un txt
Scripting
flony 2 2,516 Último mensaje 29 Marzo 2016, 18:33 pm
por flony
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines