Programa que cuelga Python

Joan Ordinas jordinas en gmail.com
Mie Sep 14 16:17:21 CEST 2005


On 9/14/05, Joaquin Jose del Cerro Murciano <jjdelcerromurciano en yahoo.es> wrote:
> El Miércoles, 14 de Septiembre de 2005 12:50, Miguel escribió:
> > Hola a todos.
> >
> > Estoy haciendo un programa que cuelga el interprete de
> > Python. Si ejecuto el programa desde la ventana del
> > editor (idle), se cuelga (antes no lo hacia). Pero si
> > copio el codigo y lopego en la ventana del
> > interprete,funciona. No es un codigo complicado. Solo
> > calcula el valor en binario de una serie de numeros.
> > EL código que uso es:
> >
> >
> > ////////////////////////////////////
> >
> > # Funcion que manda los bits en cada llamada
> > def extraeBit ():
> >
> >     # Le decimos a Python que use la variable global
> > (la definida fuera de la funcion)
> >     global aux
> >     global contador
> >     global valor
> >
> >     aux = valor & 0x01
> >     valor = valor >> 1
> >     contador = contador +1
> >
> >     return aux
> >
> >
> > # Inicializacion del programa
> > MANDAR_TRAMA_DC = 1
> > NUEVOVALOR = 1
> > posicion = 0
> >
> > tabla = [1,2,4,8,16,32,64,128,256,512,1024]
> > a = ["","","","","","","","","",""]
> >
> > NUEVOVALOR = 1
> >
> > while (posicion < 10):
> >
> 
> No se altera nunca el valor de "posicion".
> ¿ Me parece a mi o tienes un lio entre "posicion" y "contador" ?


La mitad de la confusión desapareceria si no usases 'global'. Que esté
disponible en el lenguaje no quiere decir que sea buena idea usarla...

JJOR




Más información sobre la lista de distribución Python-es