Kombinování parametrů v Pythonu

Do stejné funkce lze současně předat pojmenované a poziční parametry. To se provádí pomocí symbolu *, který označuje, že parametry uvedené napravo od něj by měly být považovány za pojmenované, pokud není potřeba použít jejich výchozí hodnoty.

Vytvořme funkci, která bude vypisovat všechny parametry do konzole. Proměnná data bude označovat obyčejný poziční parametr. Dále za symbolem * jsou zadány dvě proměnné start a end s výchozími hodnotami. Při volání funkce však tyto proměnné nastavme jako pojmenované:

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

Výsledek provedení kódu:

python1 2 3

Pokud odstraníme výchozí hodnotu proměnné start a zároveň ji odstraníme jako pojmenovaný parametr, zobrazí se chyba. To proto, že symbol * již definoval start jako pojmenovanou proměnnou:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # vypíše chybu
Задание 1

Jaký bude výsledek provedení následujícího kódu:

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

Jaký bude výsledek provedení následujícího kódu:

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

Jaký bude výsledek provedení následujícího kódu:

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