Нијансе рада са областима видљивости у Пајтону

Размотримо важне нијансе рада са локалним и глобалним променљивим.

Нека имамо глобалну променљиву num. Хајде да креирамо функцију func, која ће исписати глобалну num у конзолу:

pythonnum = 1

def func():
  print(num)

func() # исписаће 1

А сада декларишимо локалну num на реду испод функције print. Након извршавања кода у конзолу ће се исписати грешка. То се дешава због тога што Пајтон унутар функције перципира num само као локалну променљиву, која још није била декларисана:

pythonnum = 1

def func():
  print(num) # исписаће грешку
  num = 2

Хајде сада да препишемо код унутар функције тако да се вредност променљиве num повећа за 2:

pythonnum = 1

def func():
  num += 2 # исписаће грешку

Грешка је изазвана тим што израз num += 2 представља следећи запис:

pythonnum = num + 2

Међутим сама локална променљива, којој се додаје још није декларисана. И самим тим Пајтон исписује грешку, пошто није могуће додати број непостојећој вредности.

Задание 1

Какав ће бити резултат извршавања следећег кода:

pythontst = '12'

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

Какав ће бити резултат извршавања следећег кода:

pythontst = 'abc'

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

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

Какав ће бити резултат извршавања следећег кода:

pythontst = 'abc'

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