[Python] scusate.. mancava il soggetto al mail.. problema con
variabile globale
grullonet by AliceADSL
grullonet a alice.it
Dom 1 Ott 2006 15:23:11 CEST
grullonet by AliceADSL ha scritto:
> Marco Amato ha scritto:
>> Ciao , ricevo questo errore..
>> dice :
>> c (il valore che torna la funzione ) non č una variabile globale...
>> ho provato a crearla fuori prima della funzione ma non cambia la
>> situzione..
>>
>> Errore :
>>
>> File "prova.py", line 20, in ?
>> print what_decode(300)
>> File "prova.py", line 11, in what_decode
>> c[8-z] = 1
>> NameError: global name 'c' is not defined
>>
>>
>> Code:
>>
>>
>> def what_decode(val):
>>
>> a = val
>> z= 8
>>
>> while z != -1:
>> if (a >= 2**z ):
>> c[8-z] = 1
>> a = a - 2**z
>> else:
>> c[8-z] = 0
>> z=z-1
>> return c[:]
>>
>>
>>
>> print what_decode(300)
>
> Ho apportato le seguenti modifiche:
> - Inizializzato la lista c con elementi 0
> - Indentato z=z-1 per metterlo dentro il ciclo while
> Questo il codice:
>
> def what_decode(val):
> a = val
> z= 8
> c=[0,0,0,0,0,0,0,0,0]
> while z != -1:
> if (a >= 2**z ):
> c[8-z] = 1
> a = a - 2**z
> else:
> c[8-z] = 0
> z=z-1
> return c[:]
>
> print what_decode(300)
>
> E questo il risultato per il valore 300:
> [1, 0, 0, 1, 0, 1, 1, 0, 0]
>
> Mi sembra corretto: 2**8+2**5+2**3+2**2= 300
>
> Ciao
>
> Christian
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
Forse cosė č pių corretto:
def what_decode(val):
a = val
z= 8
c=[]
while z != -1:
if (a >= 2**z ):
c.append(1)
a = a - 2**z
else:
c.append(0)
z=z-1
return c[:]
print what_decode(300)
Christian
Maggiori informazioni sulla lista
Python