Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Error al contar la cantidad de palabra que tiene una frase [python]
#1
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.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#2
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!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
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?
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#4
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])))
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#5
Hola, Francisco, de mil maravillas, solo te falto un paréntesis de cierre al final.
Saludos.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#6
Cierto! Ya lo agrego.

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)