Darbas su vardų sričių niuansai Python kalboje

Panagrinėkime svarbius lokalaus ir globalaus kintamųjų darbo niuansus.

Tarkime, kad turime globalų kintamąjį num. Sukurkime funkciją func, kuri atspausdins globalų num į konsolę:

pythonnum = 1

def func():
  print(num)

func() # išves 1

O dabar deklaruokime lokalų num eilutėje žemiau funkcijos print. Po kodo vykdymo į konsolę bus išvesta klaida. Taip atsitinka dėl to, kad Python funkcijos viduje suvokia num tik kaip lokalų kintamąjį, kuris dar nebuvo deklaruotas:

pythonnum = 1

def func():
  print(num) # išves klaidą
  num = 2

Dabar perrašykime kodą funkcijos viduje taip, kad kintamojo num reikšmė padidėtų 2:

pythonnum = 1

def func():
  num += 2 # išves klaidą

Klaida sukelta dėl to, kad išraiška num += 2 atitinka šį užrašą:

pythonnum = num + 2

Tačiau pats lokalus kintamasis, prie kurio pridedama, dar nebuvo deklaruotas. Ir atitinkamai Python išveda klaidą, nes negalima pridėti skaičiaus prie neegzistuojančios reikšmės.

Задание 1

Koks bus šio kodo vykdymo rezultatas:

pythontst = '12'

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

Koks bus šio kodo vykdymo rezultatas:

pythontst = 'abc'

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

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

Koks bus šio kodo vykdymo rezultatas:

pythontst = 'abc'

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