Primitiivien välittäminen funktioiden parametreina Pythonissa

Tarkastellaanpa primitiivistietotyyppien (merkkijonot, numerot) välittämisen erityispiirteitä funktion parametrina.

Oletetaan, että meillä on funktio, joka parametrina ottaa muuttujan tst ja asettaa sille arvon 2. Funktion jälkeen esittelemme muuttujan num:

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

num = 3

Kutsutaan funktiota ja välitetään sen parametriin muuttuja num ja tulostetaan sen arvo konsoliin. Huolimatta siitä, että funktion parametrina on num, sen arvo globaalissa näkyvyysalueessa ei ole muuttunut:

pythonfunc(num) # tulostaa 2
print(num) # tulostaa 3
Задание 1

Mikä on seuraavan koodin suorituksen tulos:

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

name = 'user1'

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

Mikä on seuraavan koodin suorituksen tulos:

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

num1 = 0
num2 = 2

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