Inštrukcia global v Pythone

Majme vonkajšiu globálnu premennú i. Takisto existuje funkcia func, ktorá k tejto premennej pripočíta jednotku:

pythoni = 0
def func():
  i += 1 # vypíše chybu
  return i

Po vykonaní kódu sa vráti chyba, pretože dochádza ku konfliktu globálnej i, deklarovanej vo vonkajšom kóde, a lokálnej i, ku ktorej sa pripočítava 1, ale samotná premenná ešte nie je deklarovaná. Na to, aby sme opravili tento problém a nastavili funkcii prácu práve s globálnou premennou, je potrebné použiť inštrukciu global. Táto inštrukcia predstavuje deklaráciu, ktorá vykonáva pre celý aktuálny blok kódu, v ktorom je nastavená.

Prepíšme predchádzajúci príklad, deklarovaním v tele funkcie global:

pythondef func():
  global i
  i += 1
  return i
  
print(func()) # vypíše 1
Задание 1

V nasledujúcom kóde nejaký programátor urobil chybu:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

Čo je zlé s týmto kódom? Nájdite a opravte chybu autora kódu.

Задание 2

V nasledujúcom kóde nejaký programátor urobil chybu:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

Čo je zlé s týmto kódom? Nájdite a opravte chybu autora kódu.