Nuansy práce s oblasťami viditeľnosti v Pythone

Pozrime sa na dôležité nuansy práce s lokálnymi a globálnymi premennými.

Majme globálnu premennú num. Vytvorme funkciu func, ktorá bude vypisovať globálnu num do konzoly:

pythonnum = 1

def func():
  print(num)

func() # vypíše 1

A teraz deklarujme lokálnu num na riadku pod funkciou print. Po vykonaní kódu sa do konzoly vypíše chyba. Deje sa tak preto, že Python vo vnútri funkcie vníma num iba ako lokálnu premennú, ktorá ešte nebola deklarovaná:

pythonnum = 1

def func():
  print(num) # vypíše chybu
  num = 2

Teraz prepíšme kód vo vnútri funkcie tak, aby sa hodnota premennej num zvýšila o 2:

pythonnum = 1

def func():
  num += 2 # vypíše chybu

Chyba je spôsobená tým, že výraz num += 2 predstavuje nasledujúci zápis:

pythonnum = num + 2

Avšak samotná lokálna premenná, ku ktorej prichádza k pripočítavaniu, ešte nie je deklarovaná. A teda Python vypisuje chybu, pretože nie je možné pripočítať číslo k neexistujúcej hodnote.

Задание 1

Aký bude výsledok vykonania nasledujúceho kódu:

pythontst = '12'

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

Aký bude výsledok vykonania nasledujúceho kódu:

pythontst = 'abc'

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

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

Aký bude výsledok vykonania nasledujúceho kódu:

pythontst = 'abc'

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