Transmiterea obiectelor ca parametri în Python

Variabilele care conțin obiecte (liste, mulțimi, tuple, dicționare) în funcții sunt transmise prin referință. Să rescriem codul în funcție astfel încât primul element al variabilei transmise să se schimbe în semnul exclamării. Și mai jos de funcție să declarăm o variabilă a cărei valoare este o listă:

pythondef func(tst):
  tst[0] = '!'
  print(tst)
  
lst = [1, 2, 3, 4, 5]

Deoarece listele sunt transmise prin referință, la apelarea funcției se va schimba și valoarea lst în domeniul global de vizibilitate:

pythonfunc(lst) # va afișa ['!', 2, 3, 4, 5]
print(lst) # va afișa ['!', 2, 3, 4, 5]
Задание 1

Care va fi rezultatul executării următorului cod:

pythondef func(lst):
  lst[0] = '!'
  
lst = [1, 2, 3, 4, 5]
func(lst)

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

Care va fi rezultatul executării următorului cod:

pythondef func(lst):
  lst[0] = '!'
  
lst = [1, 2, 3, 4, 5]
lst = func(lst)

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

Care va fi rezultatul executării următorului cod:

pythondef func(lst):
  lst = '!'

lst = [1, 2, 3, 4, 5]
func(lst[0])

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

Care va fi rezultatul executării următorului cod:

pythondef func(dct):
  for key in dct.keys():
    dct[key] += 2
  
dct = {
  'a': 1,
  'b': 2,
  'c': 3,
}

func(dct)
print(dct)