Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ChicoMaravilla en 18 Enero 2011, 05:18 am



Título: [Python] - Contador de palabras en frases
Publicado por: ChicoMaravilla en 18 Enero 2011, 05:18 am
Buenas gente, estoy en el ejercicio num 241, bueno, la letra dice:


· 241 En una cadena llamada texto disponemos de un texto formado por varias frases. Escribe un programa que determine y muestre el número de palabras de cada frase

tengo que hacer un programa que cuente las palabras dentro de cada frase, y indique cuantas palabras hay en tal frase. Yo lo que hice fue esto:


Código
  1. frases=raw_input("Frases: ")
  2. fra=frases.split(".")
  3. for i in range(1,len(fra)+1):
  4.    pal=len(fra[i].split(" "))
  5.    print "Frase ",i,": ",pal

¿en que me equivoqué?, el error indica list index out of range .
se en que me equivoque, en la 4º linea, pero como lo arreglo?

PD: Yo interprete la pregunta como que las frases se separan por un punto

desde ya muchas gracias  ;D


Título: Re: [Python] - Contador de palabras en frases
Publicado por: Novlucker en 18 Enero 2011, 11:20 am
Es que te estas complicando solo :P

Código
  1. frases=raw_input("Frases: ")
  2. fra=frases.split(".")
  3. for i in fra:
  4.    pal=len(i.split(" "))
  5.    print "Frase ",i,": ",pal

Saludos


Título: Re: [Python] - Contador de palabras en frases
Publicado por: Ragnarok en 18 Enero 2011, 11:50 am
Pero sobre todo mira lo que hace range y lo que son los índices de los arrays.

Cita de: ·
Código
  1. def contar(frases):
  2.  fra=frases.split(".")
  3.  for i in range(len(fra)):
  4.    pals=len(fra[i].split(" "))
  5.    print "Frase ",i,": ",pals


Título: Re: [Python] - Contador de palabras en frases
Publicado por: ChicoMaravilla en 18 Enero 2011, 17:51 pm
Gracias por las respuestas :D, gracias novlucker por el script, parece tar correcto


Título: Re: [Python] - Contador de palabras en frases
Publicado por: Karcrack en 18 Enero 2011, 21:17 pm
Solo una pequeña anotacion, si en split() no pones ninguna cadena ya toma por defecto un espacio :)
Es decir:
Código:
"LO QUE SEA".split(" ") === "LO QUE SEA".split()