Aby wywołać funkcję w Pythonie, wystarczy użyć jej nazwy i podać odpowiednie argumenty w nawiasach okrągłych, np. wynik = nazwa_funkcji(argumenty). Funkcje stanowią fundamentalny element programowania, pozwalający na organizowanie kodu w czytelny, wielokrotnie używalny sposób.
Składnia funkcji w Pythonie
Definiowanie funkcji w Pythonie rozpoczynamy słowem kluczowym def, po którym następuje nazwa funkcji, lista argumentów w nawiasach okrągłych i dwukropek. Treść funkcji umieszczamy poniżej, dbając o odpowiednie wcięcie:
def nazwa_funkcji(argument1, argument2):
# ciało funkcji
return wynik
def– rozpoczyna definicję funkcji;- nazwa_funkcji – unikatowy, opisowy identyfikator;
- argumenty – opcjonalne zmienne, na których funkcja operuje;
return wynik– (opcjonalnie) zwraca wynik funkcji.
Wywoływanie funkcji
Aby uruchomić funkcję, należy wywołać ją podając jej nazwę oraz, jeśli wymaga – odpowiednie argumenty w nawiasach okrągłych:
wynik = nazwa_funkcji(argument1, argument2)
print(wynik)
Przykład z funkcją liczącą średnią liczb parzystych w liście:
def srednia_parzystych(lista):
suma_parzystych = 0
ilosc_parzystych = 0
for liczba in lista:
if liczba % 2 == 0:
suma_parzystych += liczba
ilosc_parzystych += 1
if ilosc_parzystych == 0:
return 0
return suma_parzystych / ilosc_parzystych
moja_lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
wynik1 = srednia_parzystych(moja_lista)
print("Średnia wartość parzystych liczb w liście:", wynik1)
Wynik działania zostanie przypisany do zmiennej wynik1 i wyświetlony.
Argumenty funkcji
Funkcje mogą przyjmować różne rodzaje argumentów:
- Argumenty pozycyjne – przekazywane wg kolejności;
- Argumenty nazwane – podajemy nazwę argumentu, np.
nazwa_funkcji(x=5); - Argumenty domyślne – można nadać argumentom wartości domyślne.
def powitanie(imie="Gość"):
print(f"Cześć, {imie}!")
powitanie() # Cześć, Gość!
powitanie("Ola") # Cześć, Ola!
Funkcje zwracające wartości vs. funkcje nie zwracające wartości (return)
- Funkcje zwracające wartość – używają
return, np.return wynik; - Funkcje wykonujące zadanie bez zwracania – brak
return, działa jak polecenie.
def przywitanie():
print("Witaj!")
def dodaj(x, y):
return x + y
przywitanie() # Witaj!
print(dodaj(4, 6)) # 10
Przekazywanie i zwracanie danych
- Każda funkcja może zwracać dowolną wartość: typ liczbowy, tekst, listę itd.,
- funkcje mogą modyfikować zmienne tylko lokalnie (nie wpływają na zmienne globalne, chyba że użyjemy słowa kluczowego
global).
Funkcje w funkcjach i wywołania zagnieżdżone
Możesz wywoływać funkcje w innych funkcjach:
def print_a():
print("a")
def print_a_and_b():
print_a()
print("b")
print_a_and_b()
# Wyjście:
# a
# b
Wywołanie funkcji print_a_and_b() powoduje uruchomienie obu instrukcji.
Praktyczne porady
- Nadaj funkcji opisową nazwę i jasno określ jej argumenty;
- dokumentuj działanie funkcji za pomocą docstringa:
def suma(a, b):
"""
Zwraca sumę dwóch liczb.
"""
return a + b
- funkcje ułatwiają testowanie oraz reużywalność kodu.
Najczęstsze błędy
- Pomijanie nawiasów przy wywołaniu (
printvs.print()), - mylenie parametrów z argumentami – parametry są w definicji funkcji, argumenty podczas wywołania.
Podsumowanie – w Pythonie funkcje definiuje się przez słowo kluczowe def, a wywołuje przez podanie nazwy funkcji z odpowiednimi argumentami w nawiasach okrągłych. Funkcje mogą posiadać różne rodzaje argumentów, zwracać różne wartości i być wywoływane wielokrotnie, znacznie upraszczając oraz organizując kod.