Paraméterek kombinálása Pythonban

Ugyanabba a függvénybe egyszerre lehet névvel ellátott és pozíciós paramétereket átadni. Ezt a * szimbólum segítségével tehetjük meg, ami azt jelöli, hogy a tőle jobbra megadott paramétereket névvel ellátottnak kell tekinteni, ha azok alapértelmezett értékeit nem kell használni.

Készítsünk egy függvényt, amely kiírja az összes paramétert a konzolra. A data változó egy közönséges pozíciós paramétert fog jelölni. Ezután a * szimbólum után két start és end változó van megadva alapértelmezett értékekkel. Azonban a függvény hívásakor ezeket a változókat névvel ellátottá tesszük:

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

A kód végrehajtásának eredménye:

python1 2 3

Ha viszont eltávolítjuk a start változó alapértelmezett értékét és ugyanakkor névvel ellátott paraméterként is elhagyjuk, akkor hibát kapunk. Ez azért történik, mert a * szimbólum már névvel ellátott változóként határozta meg a start-ot:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # hibát fog kiírni
Задание 1

Mi lesz a következő kód végrehajtásának eredménye:

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

Mi lesz a következő kód végrehajtásának eredménye:

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

Mi lesz a következő kód végrehajtásának eredménye:

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