Инструкция 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())

Какво не е наред с този код? Намерете и коригирайте грешката на автора на кода.