Ayuda Phyton bucle infinito

Iniciado por SkaTrumpet, 1 Diciembre 2015, 00:10 AM

0 Miembros y 1 Visitante están viendo este tema.

SkaTrumpet

Hola tengo un problema con este programa de phyton lo que busca es la palabra mas larga y su posicion pero se buclea infinita mente en el while y no se como repararlo gracias por su atencion

def captura():
   x=raw_input("dame una frase:")
   return x

def proceso(x):
   n=len(x)
   longitud=0
   posicion=0
   mayor=0
   pmayor=0
   for i in range(0,n):
       while x[i]!= " ":
           longitud+=1
       posicion=i
       if longitud>mayor:
           mayor=longitud
           posmayor=posicion-mayor
       longitud=0
   return mayor,posmayor

def impresion(x,y):
   print "la frase mas larga tiene",x,"caracteres"
   print "su posicion es de",y,"-",(y+x)
def main():
   t=captura()
   x,y=proceso(t)
   impresion(x,y)
main()

daryo

#1
bueno porque el while  esta dentro del for asi asi que no acaba nunca el ciclo del for y la variable i se mantiene en cero(es decir se queda siempre en el primer caracter).

hay que quitar el while y poner un if

asi funciona bien:
Código (python) [Seleccionar]
def captura():
   x=raw_input("dame una frase:")
   return x+" " # es necesario un espacio al final para que tenga en cuenta la ultima palabra

def proceso(x):
   n=len(x)
   longitud=0
   posicion=0
   mayor=0
   pmayor=0
   for i in range(n):
       if x[i]!= " ":
           longitud+=1
       else:
        posicion=i
        if longitud>mayor:
            mayor=longitud
            pmayor=posicion-mayor
        longitud=0
   return mayor,pmayor

def impresion(x,y):
   print "la frase mas larga tiene",x,"caracteres"
   print "su posicion es de",y,"-",(y+x)
def main():
   t=captura()
   x,y=proceso(t)
   impresion(x,y)
main()
buenas