Python-daky görüş meýdanlary bilen işleşiň nýuanslary

Lokal we global üýtgeýjiler bilen işiň möhüm nýuanslaryny gözden geçirýäris.

Bizde global num üýtgeýjisi bardyr diýeliň. Geliň global num-y konsola çykarjak func funksiýasyny dörediň:

pythonnum = 1

def func():
  print(num)

func() # 1-ni çykarar

Indi bolsa, print funksiýasynyň aşagyndaky setirde lokal num-y belleýliň. Kod ýerine ýetirilenden soň, konsola säwlik çykar. Bu şonuň üçin ýüze çykýar, Python funksiýanyň içinde num-y ýöne heniz bellelenmedik lokal üýtgeýji hökmünde kabul edýär:

pythonnum = 1

def func():
  print(num) # säwlik çykarar
  num = 2

Indi bolsa, funksiýanyň içindaky kody num üýtgeýjisiniň bahasyny 2 artdyrjak etmek üçin ýazalyň:

pythonnum = 1

def func():
  num += 2 # säwlik çykarar

Säwlik, num += 2 ifadesiniň aşakdaky ýazgyny aňladýandygy sebäpli ýüze çykýar:

pythonnum = num + 2

Emma goşulýan lokal üýtgeýji heniz bellik edilmedi. Şonuň üçin hem Python säwlik çykarýar, sebäbi ýok bahasa san goşup bolmaýar.

Задание 1

Aşakdaky kodyň ýerine ýetirilmegi netijesi näme bolar:

pythontst = '12'

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

Aşakdaky kodyň ýerine ýetirilmegi netijesi näme bolar:

pythontst = 'abc'

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

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

Aşakdaky kodyň ýerine ýetirilmegi netijesi näme bolar:

pythontst = 'abc'

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