Nuanțe ale lucrului cu domeniile de vizibilitate în Python

Să luăm în considerare nuanțele importante ale lucrului cu variabile locale și globale.

Să presupunem că avem variabila globală num. Să creăm o funcție func care va afișa num globală în consolă:

pythonnum = 1

def func():
  print(num)

func() # va afișa 1

Și acum să declarăm num locală pe linia următoare funcției print. După executarea codului, în consolă va apărea o eroare. Acest lucru se întâmplă deoarece Python în interiorul funcției percepe num doar ca o variabilă locală, care încă nu a fost declarată:

pythonnum = 1

def func():
  print(num) # va afișa eroare
  num = 2

Acum să rescriem codul din interiorul funcției astfel încât valoarea variabilei num să crească cu 2:

pythonnum = 1

def func():
  num += 2 # va afișa eroare

Eroarea este cauzată de faptul că expresia num += 2 reprezintă următoarea notație:

pythonnum = num + 2

Cu toate acestea, variabila locală în sine, căreia îi este adăugată valoarea, încă nu este declarată. Și, în consecință, Python afișează o eroare, deorece nu se poate adăuga un număr la o valoare inexistentă.

Задание 1

Care va fi rezultatul executării următorului cod:

pythontst = '12'

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

Care va fi rezultatul executării următorului cod:

pythontst = 'abc'

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

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

Care va fi rezultatul executării următorului cod:

pythontst = 'abc'

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