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

Что не так с этим кодом? Найдите и исправьте ошибку автора кода.