Sfumature dell'utilizzo degli ambiti di visibilità in Python

Consideriamo le importanti sfumature dell'utilizzo delle variabili locali e globali.

Supponiamo di avere una variabile globale num. Creiamo una funzione func che stamperà num globale in console:

pythonnum = 1

def func():
  print(num)

func() # stamperà 1

Ora dichiariamo una num locale una riga sotto la funzione print. Dopo l'esecuzione del codice in console verrà stampato un errore. Ciò accade perché Python all'interno della funzione percepisce num solo come una variabile locale, che non è ancora stata dichiarata:

pythonnum = 1

def func():
  print(num) # stamperà un errore
  num = 2

Ora riscriviamo il codice all'interno della funzione in modo che il valore della variabile num aumenti di 2:

pythonnum = 1

def func():
  num += 2 # stamperà un errore

L'errore è causato dal fatto che l'espressione num += 2 rappresenta la seguente scrittura:

pythonnum = num + 2

Tuttavia, la variabile locale stessa, a cui viene aggiunto il valore, non è ancora dichiarata. E di conseguenza Python restituisce un errore, poiché non è possibile aggiungere un numero a un valore inesistente.

Задание 1

Quale sarà il risultato dell'esecuzione del seguente codice:

pythontst = '12'

def func():
  tst = 12
  return tst
  
print(tst)
Задание 2

Quale sarà il risultato dell'esecuzione del seguente codice:

pythontst = 'abc'

def func():
  tst = tst.upper()
  return tst

func()
print(tst)
Задание 3

Quale sarà il risultato dell'esecuzione del seguente codice:

pythontst = 'abc'

def func():
txt = tst.upper()
return txt
    
print(func())
print(tst)