Crea un programa que cuente cuántas veces se repite cada palabra y que muestre el recuento final de todas ellas.
- Los signo de puntuación no forman parte de la palabra.
- Una palabra es la misma aunque aparezca en mayúsculas y minúsculas.
Ejemplo: si ingresamos el texto: Hola, mi nombre es Linder. Mi nombre completo es linder linder (linder3hs).
En pantalla va a mostrar el mensaje:
{'es': 2, 'nombre': 2, 'hola': 1, 'mi': 2, 'completo': 1, 'linderhs': 1, 'linder': 3}
Código del ejercicio:
Definición de los códigos del ejercicio:
input() --> permite obtener texto escrito por teclado.lower() --> devuelve una cadena donde todos los caracteres están en minúsculas.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
isalpha() --> devuelve True si todos los caracteres son letras del alfabeto (az). Si no, devuelve False.
True --> valor booleano verdadero.
or --> devuelve True si una de las afirmaciones es verdadera.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
split() --> divide una cadena en una lista.
set() --> se utiliza para almacenar varios elementos en una sola variable y no tiene elementos duplicados.
print() --> imprime un mensaje en la pantalla.
dict() --> crea un diccionario. Un diccionario es una colección desordenada, modificable e indexada.
count() --> devuelve el número de elementos con el valor especificado.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
Explicación del Código:
Este programa permite ingresar una frase y contar cuántas veces aparece cada palabra. Los signos de puntuación son ignorados y las letras mayúsculas y minúsculas se consideran iguales.
Código en Python
frase = input("Ingresar frase: ")
frase = frase.lower()
n_frase = ""
for i in frase:
if i.isalpha() == True or i == " ":
n_frase = n_frase + i
lista_palabras = n_frase.split()
palabras_unicas = set(lista_palabras)
print(dict([[i, lista_palabras.count(i)] for i in palabras_unicas]))
Explicación de cada código
- frase = input(...): permite que el usuario ingrese una frase.
- frase = frase.lower(): convierte todas las letras de la frase a minúsculas. De esta manera, "Hola", "HOLA" y "hola" se consideran la misma palabra.
- n_frase = "": crea una cadena de texto vacía que se utilizará para guardar la frase sin signos de puntuación.
- for i in frase:: recorre la frase carácter por carácter.
- i.isalpha(): comprueba si el carácter actual es una letra.
- i == " ": comprueba si el carácter actual es un espacio. Los espacios se mantienen para poder separar las palabras.
- or: significa "o". La condición será verdadera si el carácter es una letra o es un espacio.
- n_frase = n_frase + i: agrega el carácter permitido a la nueva frase. Los signos de puntuación no se agregan.
- lista_palabras = n_frase.split(): divide la frase en palabras y las guarda dentro de una lista.
- palabras_unicas = set(lista_palabras): crea un conjunto con las palabras sin repetir. Esto permite trabajar una sola vez con cada palabra diferente.
- lista_palabras.count(i): cuenta cuántas veces aparece la palabra actual dentro de la lista.
- dict(...): convierte los resultados en un diccionario. La palabra será la clave y el número de repeticiones será su valor.
- print(...): muestra en pantalla el resultado final.
Hola mundo, hola Python. Mundo hola.
El programa eliminará los signos de puntuación y convertirá todo a minúsculas. El resultado será similar a:
{'hola': 3, 'mundo': 2, 'python': 1}
No hay comentarios.:
Publicar un comentario