Pythoni skoobi töötamise nüansid

Vaatleme olulisi nüansse lokaalsete ja globaalsete muutujatega töötamisel.

Oletame, et meil on globaalne muutuja num. Loome funktsiooni func, mis väljastab globaalse num konsooli:

pythonnum = 1

def func():
  print(num)

func() # väljastab 1

Nüüd deklareerime lokaalse num real allpool print funktsiooni. Pärast koodi käivitamist kuvatakse konsooli viga. See juhtub seetõttu, et Python funktsiooni sees tajub num-it ainult lokaalse muutujana, mida ei ole veel deklareeritud:

pythonnum = 1

def func():
  print(num) # väljastab vea
  num = 2

Kirjutame nüüd funktsiooni sees oleva koodi ümber nii, et muutuja num väärtus suureneb 2 võrra:

pythonnum = 1

def func():
  num += 2 # väljastab vea

Viga on põhjustatud sellest, et avaldis num += 2 esindab järgmist kirjet:

pythonnum = num + 2

Kuid lokaalset muutujat, millele liidetakse, pole veel deklareeritud. Ja vastavalt sellele kuvab Python vea, kuna ei saa lisada arvu olematule väärtusele.

Задание 1

Milline on järgmise koodi täitmise tulemus:

pythontst = '12'

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

Milline on järgmise koodi täitmise tulemus:

pythontst = 'abc'

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

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

Milline on järgmise koodi täitmise tulemus:

pythontst = 'abc'

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