Взаимодействие областей видимости в Python

Бывают случаи, когда внешняя (глобальная) и внутренняя (локальная) переменные имеют одно и тоже имя:

pythonnum = 1

def func():
  num = 2
  print(num)

При этом важно понимать, что локальная num хоть и имеет тоже название, то и глобальная, но для Python является другой переменной. Это значит, что глобальная num НЕ перезаписывается внутри функции, а сохраняет свое первоначальное значение. При вызове функции func в консоль выведется значение только локальной num, а через print - значение глобальной переменной:

pythonfunc() # выведет 2
print(num) # выведет 1
Задание 1

Каким будет результат выполнения следующего кода:

pythonnum = 10

def func():
  num = 5
  return num

func()
print(num)
Задание 2

Каким будет результат выполнения следующего кода:

pythonnum = 3

def func():
  num = 4
  return num

num = func()
print(num)
Задание 3

Каким будет результат выполнения следующего кода:

pythonnum = 1

def func():
  num = 2
  return 1

num = func()
print(num)
Задание 4

Каким будет результат выполнения следующего кода:

pythonnum1 = 1

def func():
  num2 = 2

func()
print(num1)
Задание 5

Каким будет результат выполнения следующего кода:

pythonnum1 = 1

def func():
  num2 = 2

func()
print(num2)
Задание 6

Каким будет результат выполнения следующего кода:

pythonnum1 = 1

def func():
  num2 = 2

func()
num2 = 3
print(num2)
Задание 7

Каким будет результат выполнения следующего кода:

pythonnum1 = 1
num2 = 2

def func():
  num2 = 3

func()
print(num2)
Задание 8

Каким будет результат выполнения следующего кода:

pythonnum1 = 1

def func():
  num1 = 2

print(num1)