15

Parametry funkcji – jedna funkcja, wiele różnych danych

Materiały tej lekcji są na razie tylko do czytania na stronie. Kod przepisz albo skopiuj do swojego edytora.

Czego się nauczysz

Funkcja, która zawsze robi to samo, przydaje się rzadko. Dzięki parametrom ta sama funkcja działa na różnych danych. Przy okazji poznasz mechanizm – wartość domyślną – który w klasie piątej okaże się jednym z najczęstszych miejsc utraty punktów na egzaminie.

Po tej lekcji:

Parametr i argument

Dwa słowa na dwie strony tej samej rzeczy:

def powitaj(imie, miasto):
    print(f"{imie} z {miasto}")

powitaj("Anna", "Gdynia")   # Anna z Gdynia
powitaj("Gdynia", "Anna")   # Gdynia z Anna
powitaj("Anna")             # TypeError!

Kolejność ma znaczenie

Pierwszy argument trafia do pierwszego parametru, drugi do drugiego. Liczy się wyłącznie kolejność.

Wywołanie z nieprawidłową liczbą argumentów kończy się błędem TypeError. Funkcja z dwoma parametrami wymaga dokładnie dwóch wartości.

Można też podać argumenty z nazwą – wtedy kolejność przestaje mieć znaczenie:

powitaj(miasto="Gdynia", imie="Anna")

Zmienne wewnątrz funkcji zostają w środku

def policz():
    wynik = 42
    return wynik

print(policz())   # 42
print(wynik)      # NameError

Zmienna utworzona w środku funkcji przestaje istnieć w chwili jej zakończenia. Na zewnątrz nie da się do niej sięgnąć.

Jeśli zmienna w funkcji ma taką samą nazwę jak zmienna na zewnątrz, to są dwie różne zmienne – ta w funkcji „zasłania” zewnętrzną tylko na czas działania funkcji.

Argument domyślny – parametr, który można pominąć

Jeśli po nazwie parametru dopiszesz znak równości i wartość, parametr staje się opcjonalny. Pominięty przy wywołaniu przyjmie wartość zapasową.

def powitaj(imie, slowo="Czesc"):
    return f"{slowo}, {imie}!"

print(powitaj("Anna"))            # Czesc, Anna!
print(powitaj("Anna", "Witaj"))   # Witaj, Anna!

Dlaczego to jest ważniejsze, niż wygląda

Python, w odróżnieniu od C#, nie umie mieć dwóch konstruktorów. Arkusz egzaminacyjny ze stycznia 2026 zawiera osobną uwagę: w Pythonie należy utworzyć jeden konstruktor z domyślną wartością argumentu None.

Mechanizm poznajesz dziś. Zastosujesz go w klasie piątej, przy pisaniu klasy na egzamin.

Spróbuj sam

W kodzie z lekcji usuń # z linii print(wynik_lokalny) i uruchom program – zobaczysz, że zmienna z wnętrza funkcji na zewnątrz nie istnieje. Potem wywołaj funkcję przywitaj z własnym powitaniem.

Zadania z lekcji:

  1. Napisz funkcję pole_prostokata(a, b) zwracającą pole. Wywołaj ją dla trzech różnych par wymiarów.
  2. Napisz funkcję ile_powyzej(lista, prog=4), która zwraca liczbę elementów większych od progu. Wywołaj ją raz bez drugiego argumentu i raz z argumentem 2.
  3. Napisz funkcję najwieksza(lista) zwracającą największy element bez używania funkcji max. Pamiętaj, żeby zacząć od pierwszego elementu listy.
  4. Napisz funkcję powitaj(imie, powitanie="Czesc") i sprawdź, co się stanie, gdy zamienisz kolejność parametrów w definicji. Zapisz komunikat błędu w komentarzu.

Sprawdź się

Na następnej lekcji: dane od użytkownika. Program przestanie działać na wartościach wpisanych na sztywno i zacznie pytać osobę przy klawiaturze.

Notatki

PDF
Zadania utrwalające Karta pracy do tej lekcji: zadania sprawdzające i domowe do samodzielnego zrobienia w swoim edytorze · 4 strony.
Zadania utrwalające – Parametry funkcji – jedna funkcja, wiele różnych danych
Strona 1 z 4 Strona 2 z 4 Strona 3 z 4 Strona 4 z 4

Prezentacja

Slajd 1 z 6
1 / 6

Kod

Otwórz kod, zmieniaj go i uruchamiaj na stronie – np. usuń # z linii oznaczonej jako błąd i zobacz, co się stanie. „Przywróć” wraca do wersji z lekcji.

PY
demo_15_parametry-funkcji.py Kod z lekcji – otwórz, zmieniaj i uruchamiaj; wynik zobaczysz obok kodu.
demo_15_parametry-funkcji.py
Wynik programu
Kliknij „Uruchom”, żeby zobaczyć tutaj wynik programu.