Інструкцыя global у Python

Няхай у нас ёсць знешняя глабальная зменная i. Таксама ёсць функцыя func, якая дадае да гэтай зменнай адзінку:

pythoni = 0
def func():
  i += 1 # выведзе памылку
  return i

Пасля выканання кода вернецца памылка, таму што адбываецца канфлікт глабальнай i, аб'яўленай у знешнім кодзе, і лакальнай i, да якой дадаецца 1, але сама зменная яшчэ не аб'яўлена. Для таго, каб выправіць гэтую праблему і задаць функцыі працу менавіта з глабальнай зменнай, трэба выкарыстоўваць інструкцыю global. Гэтая інструкцыя ўяўляе сабой аб'яву, якая выконваецца для ўсяго бягучага блока кода, у якім яна зададзена.

Давайце перапішам папярэдні прыклад, аб'явіўшы ў целе функцыі global:

pythondef func():
  global i
  i += 1
  return i
  
print(func()) # выведзе 1
Задание 1

У наступным кодзе нейкі праграміст дапусціў памылку:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

Што не так з гэтым кодам? Знайдзіце і выпраўце памылку аўтара кода.

Задание 2

У наступным кодзе нейкі праграміст дапусціў памылку:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

Што не так з гэтым кодам? Знайдзіце і выпраўце памылку аўтара кода.