Foros Python

Versión completa: Error al contar la cantidad de palabra que tiene una frase [python]
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola.
El manual con el que estoy estudiando me pide hacer un programita que cuente la cantidad de palabras
que tiene una frase ingresada por teclado, esto que encostre en la web me pareció interesante, más por lo conciso, pero como todos los que practique tiene un problema, si al separar las palabras con 2 o más espacios,
(cosa que puede ocurrir) el resultado es incorrecto. -


Código:
cadena = input("Escriba una frase: ")
print("Numero de palabras: " + str(len(cadena.split(" "))))




Si alguien sabe cómo solucionarlo, danielito agradecido. -
Saludos.
Hola Daniel.

Por defecto la función split() separa la cadena en todo lo que considere un espacio en blanco, incluyendo saltos de línea. Además, una vez hecho esto, también remueve las cadenas vacías. Por tanto lo siguiente debería funcionar:

Código:
cadena = input("Escriba una frase: ")
print("Numero de palabras: " + str(len(cadena.split())))

Saludos!
Gracias Francisco, si funciona, solo quedaría por resolver una cosa, esta frase "La casa del lago y la de Rosario"
da como resultado 8 palabras y en realidad "y" es una letra y no una palabra, ¿qué opinas?
Podrías añadir una pequeña condición para solo incluir palabras con dos o más carácteres:

Código:
print("Numero de palabras: " + str(len([palabra for palabra in cadena.split() if len(palabra) > 1])))
Hola, Francisco, de mil maravillas, solo te falto un paréntesis de cierre al final.
Saludos.
Cierto! Ya lo agrego.

Saludos