Łączenie parametrów w Pythonie

Do tej samej funkcji można jednocześnie przekazać parametry nazwane i pozycyjne. Robimy to za pomocą symbolu *, który oznacza, że parametry podane po jego prawej stronie należy uważać za nazwane, jeśli nie chcemy użyć ich wartości domyślnych.

Stwórzmy funkcję, która będzie wyświetlać wszystkie parametry w konsoli. Zmienna data będzie oznaczać zwykły parametr pozycyjny. Następnie po symbolu * podane są dwie zmienne start i end z wartościami domyślnymi. Jednak przy wywołaniu funkcji zróbmy te zmienne nazwanymi:

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

Wynik wykonania kodu:

python1 2 3

Jeśli jednak usuniemy wartość domyślną zmiennej start i jednocześnie usuniemy ją jako parametr nazwany, to pojawi się błąd. Dzieje się tak, ponieważ symbol * już zdefiniował start jako nazwaną zmienną:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # wyświetli błąd
Задание 1

Jaki będzie wynik wykonania następującego kodu:

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

Jaki będzie wynik wykonania następującego kodu:

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

Jaki będzie wynik wykonania następującego kodu:

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