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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  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 1,662 veces)
SkaTrumpet

Desconectado Desconectado

Mensajes: 3


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

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 am por SkaTrumpet » En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



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

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 am por daryo » En línea

buenas
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 15,482 Último mensaje 28 Agosto 2015, 21:46 pm
por MCKSys Argentina
El que se ha metido en un bucle infinito soy yo...
Programación C/C++
Superplay 0 3,800 Último mensaje 1 Diciembre 2010, 21:14 pm
por Superplay
Implementacion de bucle infinito
Programación C/C++
mark182 3 4,527 Último mensaje 12 Marzo 2011, 11:33 am
por Akai
[Ayuda-C] Bucle infinito
Programación C/C++
Miky Gonzalez 4 2,801 Último mensaje 11 Octubre 2013, 15:51 pm
por Miky Gonzalez
Bucle Infinito ayuda.
Programación C/C++
jtrujilloj 1 2,124 Último mensaje 13 Febrero 2018, 09:42 am
por vangodp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines