Istruzione global in Python

Supponiamo di avere una variabile globale esterna i. C'è anche una funzione func che aggiunge uno a questa variabile:

pythoni = 0
def func():
  i += 1 # darà un errore
  return i

Dopo l'esecuzione del codice, verrà restituito un errore, perché c'è un conflitto tra la variabile globale i, dichiarata nel codice esterno, e la variabile locale i, a cui viene aggiunto 1, ma la variabile stessa non è ancora dichiarata. Per correggere questo problema e far sì che la funzione lavori proprio con la variabile globale, è necessario utilizzare l'istruzione global. Questa istruzione rappresenta una dichiarazione che viene eseguita per l'intero blocco di codice corrente in cui è definita.

Riscriviamo l'esempio precedente, dichiarando nel corpo della funzione global:

pythondef func():
  global i
  i += 1
  return i
  
print(func()) # restituirà 1
Задание 1

Nel codice seguente, un programmatore ha commesso un errore:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

Cosa non va in questo codice? Trovate e correggete l'errore dell'autore del codice.

Задание 2

Nel codice seguente, un programmatore ha commesso un errore:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

Cosa non va in questo codice? Trovate e correggete l'errore dell'autore del codice.