elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Píldoras formativas en seguridad de la información


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Ayuda Phyton bucle infinito
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda Phyton bucle infinito  (Leído 364 veces)
SkaTrumpet

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda Phyton bucle infinito
« en: 1 Diciembre 2015, 00:10 »

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
Código:
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()


« Última modificación: 1 Diciembre 2015, 00:20 por SkaTrumpet » En línea

daryo


Desconectado Desconectado

Mensajes: 1.072



Ver Perfil WWW
Re: Ayuda Phyton bucle infinito
« Respuesta #1 en: 1 Diciembre 2015, 01:06 »

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
  1. def captura():
  2.    x=raw_input("dame una frase:")
  3.    return x+" " # es necesario un espacio al final para que tenga en cuenta la ultima palabra
  4.  
  5. def proceso(x):
  6.    n=len(x)
  7.    longitud=0
  8.    posicion=0
  9.    mayor=0
  10.    pmayor=0
  11.    for i in range(n):
  12.        if x[i]!= " ":
  13.            longitud+=1
  14.        else:
  15.         posicion=i
  16.         if longitud>mayor:
  17.             mayor=longitud
  18.             pmayor=posicion-mayor
  19.         longitud=0
  20.    return mayor,pmayor
  21.  
  22. def impresion(x,y):
  23.    print "la frase mas larga tiene",x,"caracteres"
  24.    print "su posicion es de",y,"-",(y+x)
  25. def main():
  26.    t=captura()
  27.    x,y=proceso(t)
  28.    impresion(x,y)
  29. main()


« Última modificación: 1 Diciembre 2015, 01:10 por daryo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
probando un bucle infinito... « 1 2 3 »
Bugs y Exploits
mousehack 22 7,930 Último mensaje 28 Agosto 2015, 21:46
por MCKSys Argentina
Ayuda muy basica!! (bucle infinito fichero)
Programación C/C++
oskii 4 2,775 Último mensaje 14 Abril 2010, 12:14
por oskii
Bucle infinito interumpible
Programación C/C++
soyloqbuskas 3 1,224 Último mensaje 23 Agosto 2012, 01:06
por 0xDani
Bucle infinito y hilos en C
Programación C/C++
soyloqbuskas 3 1,945 Último mensaje 25 Octubre 2012, 15:46
por 0xDani
[Ayuda-C] Bucle infinito
Programación C/C++
Miky Gonzalez 4 892 Último mensaje 11 Octubre 2013, 15:51
por Miky Gonzalez
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines