[Python] scusate.. mancava il soggetto al mail.. problema con
variabile globale
grullonet by AliceADSL
grullonet a alice.it
Dom 1 Ott 2006 15:14:06 CEST
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
Maggiori informazioni sulla lista
Python