Вопросы на собеседовании

Когда я проверяю знания Python, я обычно даю пять задач. В каждой нужно внимательно прочитать код, объяснить, как он работает, и какой будет результат. Задачи достаточно простые, но с подвохом.
Для меня важно увидеть, как кандидат рассуждает. Знать всё невозможно, и я никогда не оцениваю строго. Но такие задачи хорошо показывают разницу в глубине понимания между кандидатами.
Сами задания взяты из открытых источников.

Задача 1
```
nums = [10, 1, 2, 3, 4, 51]
nums.append(nums[:])
print(len(nums))
```

Задача 2
```
def func():
total = 0
def another_func(x):
nonlocal total
total+=x
return total
return another_func
counter = func()
print(counter(5), counter(10), counter(15))
```

Задача 3
```
a = 10
b = 5
result = a or b / 0
print(result)
```

Задача 4
```
def external_function():
global a
a = 20
def internal_function():
global a
a = 30
print( 'a =', a)
a = 10
external_function()
print('a =', a)
```

Задача 5
```
a = [1,2,3]

def func_change_or_not_change(x: list):
x[0] = 5

func_change_or_not_change(a)

print(a)
```

Попробуйте решить их сами. А вы бы по таким задачам оценивали знания других?