Передача переменных по значению в Python

В Python все данные делятся на примитивные (строки, числа) и сложные объекты (списки, множества, словари и т.д.). При этом передача переменных каждого из типов имеет свои особенности. Например, по значению можно передать переменные, принадлежащие только к примитивным типам данных.

Пусть у нас есть две переменные. Первая содержит в значении единицу, а вторая переменная равна первой:

pythonnum1 = 1
num2 = num1

print(num2) # выведет 1

Если после объявления второй переменной перезаписать num1, то значение num2 останется прежним. Это объясняется тем, что в num2 копируется только значение первой переменной. И любые последующие изменения, внесенные в num1 не повлияют на num2. Здесь работает передача переменной по значению:

pythonnum1 = 1
num2 = num1
num1 = 3

print(num2) # выведет 1
Задание 1

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

pythonnum1 = 10
num2 = num1
num1 = 5

print(num2)
Задание 2

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

pythonnum1 = 8
num2 = num1 - 2

print(num2)
Задание 3

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

pythontxt1 = 'abcde'
txt2 = 'abcde'
txt1 = txt1.upper()

print(txt2)
Задание 4

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

pythontxt1 = 'abcde'
txt2 = txt1
txt1 = txt1.title()

print(txt1)
print(txt2)