11 proyectos en Python - Contador de palabras

Como me temía, la dificultad aumenta: hoy, tendremos que contar las palabras que componen una frase. Para ello, haremos uso de la estructura for... in... que permite recorrer una cadena de caracteres de forma sencilla. 

Inicializaremos un contador a 0 que será el que nos diga cuantas palabras hay. Para ello, tomaremos nota de los espacios que hay en la frase. Además, tendremos que usar una variable de tipo carácter para comparar con los caracteres de la sentencia en busca de los espacios. Con el mencionado for, recorreremos la cadena de caracteres, sumando 1 al contador en caso de que el carácter que es esté comprobando sea un espacio. Una vez finalizado el recorrido, sumaremos al contador un 1 ya que tras la última palabra no suele haber espacio. Es un método rudimentario que no deberíamos implementar en un avión pero para escribir un post, me vale.

El código quedaría así: 

contador = 0
letra= "."
frase = input("¿En qué estás pensando hoy?: ")
for letra in frase:
if letra == " ":
contador += 1

contador +=1
print("Me lo has contado con solo "+ str(contador) + " palabras.")

 

Como contador es un número y solo podemos concatenar cadenas, usaremos la función str() para convertir el número de palabras en una cadena de caracteres.

Sin embargo, para ir un paso más allá en nuestro aprendizaje, nos piden que leamos la frase directamente de un fichero. Lo que haremos de la siguiente forma: 

f = open("hola.txt")
contador = 0
letra= "."
for letra in f.read():
if letra == " ":
contador += 1
contador +=1
print("Me lo has contado con solo "+ str(contador) + " palabras.")

Abrimos el fichero con la función open() y lo asignamos a una variable, que se convertirá en el manejador del mismo, a la que aplicaremos las funciones que necesitemos. En este caso, read(), que nos permitirá leer todo el archivo de una tacada, y que junto al uso de for... in... visto en el código anterior, solucionará el problema.

FreeCodeCamp da una solución más completa, listando las palabras del texto en cuestión y la frecuencia con las que aparecen, algo lejos de lo que nos pedían.

Compartir:
spacer

No hay comentarios:

Publicar un comentario

Comenta lo que quieras