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@lists.python.it
http://lists.python.it/mailman/listinfo/python