Kombinovanje parametara u Pythonu

U istu funkciju je moguće istovremeno proslediti imenovane i pozicione parametre. To se radi pomoću simbola *, koji označava da parametre navedene sa desne strane od njega treba smatrati imenovanim, ako njihove podrazumevane vrednosti nije potrebno koristiti.

Hajde da kreiramo funkciju koja će ispisivati sve parametre u konzolu. Promenljiva data će označavati običan pozicioni parametar. Zatim nakon simbola * postavljaju se dve promenljive start i end sa podrazumevanim vrednostima. Međutim, prilikom poziva funkcije učinićemo ove promenljive imenovanim:

pythondef func(data, *, start=0, end=100):
  print(data, start, end)
  
func(1, start=2, end=3)

Rezultat izvršavanja koda:

python1 2 3

Ako uklonite podrazumevanu vrednost promenljive start i u isto vreme je uklonite kao imenovani parametar, ispisaće se greška. To se dešava zato što je simbol * već definisao start kao imenovanu promenljivu:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # ispisaće grešku
Задание 1

Kakav će biti rezultat izvršavanja sledećeg koda:

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3
  
print(func(2, 4, num3=3))
Задание 2

Kakav će biti rezultat izvršavanja sledećeg koda:

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3
  
print(func(12, 4, num3=5))
Задание 3

Kakav će biti rezultat izvršavanja sledećeg koda:

pythondef func(*, name='user1', age='18'):
  return 'Username is ' + name + ' age is ' + age
  
print(func(name='john'))