Предаване на примитиви като параметри на функции в Python

Нека разгледаме особеностите на предаването на примитивни типове данни (низове, числа) като параметри на функция.

Нека имаме функция, която приема променлива tst като параметър и ѝ задава стойност 2. След функцията ще декларираме променлива num:

pythondef func(tst):
  tst = 2
  print(tst)

num = 3

Нека извикаме функцията и подадем в нейния параметър променливата num и изведем нейната стойност в конзолата. Въпреки че в параметъра на функцията е указана num, нейната стойност в глобалната зона на видимост не се е променила:

pythonfunc(num) # ще изведе 2
print(num) # ще изведе 3
Задание 1

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef func(txt):
  txt = 'user2'
  return txt

name = 'user1'

res = func(name)
print(res)
print(name)
Задание 2

Какъв ще бъде резултатът от изпълнението на следния код:

pythondef func(tst1, tst2):
  tst1 += 1
  tst2 *= 2
  return tst1 + tst2

num1 = 0
num2 = 2

res = func(num1, num2)
print(num1 + num2)
print(res)