3 usuarios conectados

Convertir texto a morse. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada texto_a_morse que tome una cadena de texto en español (letras y números básicos) como entrada y devuelva su representación en código Morse.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Convertir texto a morse

📋 Copiar código


def texto_a_morse(texto):
  """
  Convierte una cadena de texto a código Morse.

  Args:
    texto: La cadena de texto a convertir.

  Returns:
    La representación en código Morse del texto.
  """
  morse_code = {
      'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.',
      'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---',
      'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---',
      'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-',
      'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--',
      'Z': '--..',
      '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',
      '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',
      ' ': ' '  # Espacio entre palabras
  }
  texto_morse = ''
  for letra in texto.upper():
    if letra in morse_code:
      texto_morse += morse_code[letra] + ' '
    else:
      # Ignorar caracteres no soportados
      pass
  return texto_morse.strip()

# Ejemplos de uso
texto1 = "Hola Mundo"
morse1 = texto_a_morse(texto1)
print(f"'{texto1}' en Morse: '{morse1}'")

texto2 = "SOS"
morse2 = texto_a_morse(texto2)
print(f"'{texto2}' en Morse: '{morse2}'")

texto3 = "123 ABC"
morse3 = texto_a_morse(texto3)
print(f"'{texto3}' en Morse: '{morse3}'")

texto4 = "Texto con ñ"
morse4 = texto_a_morse(texto4)
print(f"'{texto4}' en Morse: '{morse4}'")

texto5 = ""
morse5 = texto_a_morse(texto5)
print(f"'' en Morse: '{morse5}'")


Explicación del Código:

  1. def texto_a_morse(texto)::

    • Define una función llamada texto_a_morse que toma una cadena de texto (texto) como entrada.
  2. morse_code = { ... }:

    • Se crea un diccionario morse_code que mapea las letras mayúsculas y los números básicos a su representación en código Morse. También incluye un espacio para separar palabras.
  3. texto_morse = '':

    • Inicializa una cadena vacía texto_morse para almacenar el resultado en código Morse.
  4. for letra in texto.upper()::

    • Itera a través de cada letra en el texto de entrada, convirtiéndola a mayúsculas para asegurar la coincidencia con las claves del diccionario morse_code.
  5. if letra in morse_code::

    • Verifica si la letra actual está presente como clave en el diccionario morse_code.
  6. texto_morse += morse_code[letra] + ' ':

    • Si la letra se encuentra en el diccionario, se añade su correspondiente código Morse al texto_morse, seguido de un espacio para separar las letras.
  7. else::

    • Si la letra no se encuentra en el diccionario (por ejemplo, caracteres especiales como la 'ñ' en este ejemplo básico), se ignora.
  8. return texto_morse.strip():

    • Finalmente, se devuelve la cadena texto_morse, eliminando cualquier espacio en blanco al final con .strip().