Test Foro de elhacker.net SMF 2.1

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 (python) [Seleccionar]
frases=raw_input("Frases: ")
fra=frases.split(".")
for i in range(1,len(fra)+1):
    pal=len(fra[i].split(" "))
    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 (python) [Seleccionar]
frases=raw_input("Frases: ")
fra=frases.split(".")
for i in fra:
    pal=len(i.split(" "))
    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 (python) [Seleccionar]
def contar(frases):
  fra=frases.split(".")
  for i in range(len(fra)):
    pals=len(fra[i].split(" "))
    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:
"LO QUE SEA".split(" ") === "LO QUE SEA".split()