Specifika práce s oblastmi viditelnosti v Pythonu

Podívejme se na důležité nuance práce s lokálními a globálními proměnnými.

Předpokládejme, že máme globální proměnnou num. Vytvořme funkci func, která bude vypisovat globální num do konzole:

pythonnum = 1

def func():
  print(num)

func() # vypíše 1

Nyní deklarujme lokální num na řádku níže pod funkcí print. Po spuštění kódu se v konzoli objeví chyba. K tomu dochází proto, že Python uvnitř funkce vnímá num pouze jako lokální proměnnou, která ještě nebyla deklarována:

pythonnum = 1

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

Nyní přepišme kód uvnitř funkce tak, aby se hodnota proměnné num zvýšila o 2:

pythonnum = 1

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

Chyba je způsobena tím, že výraz num += 2 je ekvivalentní následujícímu zápisu:

pythonnum = num + 2

Avšak samotná lokální proměnná, ke které dochází k přičítání, ještě nebyla deklarována. A tudíž Python vypisuje chybu, protože nelze přičíst číslo k neexistující hodnotě.

Задание 1

Jaký bude výsledek provedení následujícího kódu:

pythontst = '12'

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

Jaký bude výsledek provedení následujícího kódu:

pythontst = 'abc'

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

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

Jaký bude výsledek provedení následujícího kódu:

pythontst = 'abc'

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