Funkcje w Pythonie – podstawy, parametry, dobre praktyki

Funkcje w Pythonie są podstawowym narzędziem organizowania kodu, zwiększania jego czytelności oraz wielokrotnego użycia. Ich definiowanie odbywa się poprzez słowo kluczowe def. Poniższy artykuł omawia wszystkie najważniejsze aspekty korzystania z funkcji w Pythonie – od podstawowej składni, przez zaawansowane techniki, po dobre praktyki programistyczne.

1. Czym jest funkcja w Pythonie?

Funkcja to wyodrębniony fragment programu realizujący określone zadanie; można ją wielokrotnie wywoływać z różnymi danymi wejściowymi (parametrami). Stosowanie funkcji ułatwia:

  • dzielenie programu na mniejsze, czytelne fragmenty,
  • ponowne użycie kodu,
  • łatwiejsze testowanie i debugowanie.

2. Składnia definicji funkcji w Pythonie

Definiowanie funkcji rozpoczyna się od słowa kluczowego def, po którym następuje:

  • nazwa funkcji (najlepiej opisowa),
  • nawiasy okrągłe (z listą parametrów, mogą być puste),
  • dwukropek rozpoczynający blok kodu.

Każdy wiersz należący do funkcji musi być odpowiednio wcięty (najczęściej cztery spacje).

Przykład prostej funkcji

def przywitaj():
    print("Cześć!")

Funkcja z parametrami i wartością zwracaną

def dodaj(a, b):
    return a + b
  • return kończy działanie funkcji i opcjonalnie zwraca wartość do miejsca wywołania.

3. Argumenty i parametry funkcji

Funkcje mogą przyjmować dowolną liczbę argumentów:

  • Brak argumentówdef powitanie(): print("Witaj użytkowniku!")
  • Jeden lub wiele argumentów
def pomnoz(x, y):
    return x * y
  • Parametry domyślne – umożliwiają podanie wartości domyślnej, gdy argument nie zostanie przekazany. def powitanie(imie="Gość"): print(f"Cześć, {imie}!")
  • Argumenty nazwane i pozycyjne – w Pythonie można przekazywać argumenty według pozycji lub przez nazwę.
  • Dowolna liczba argumentów (args i kwargs)def suma(*args): return sum(args) def wypisz(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}")

4. Typy zwracanych wartości

Funkcja może:

  • nic nie zwracać (zwraca domyślnie None);
  • zwracać jedną wartość (np. liczbę, tekst);
  • zwracać krotkę (czyli kilka wartości naraz): def dzielenie_i_reszta(a, b): return a // b, a % b

5. Zakres zmiennych (scope)

  • Zmienna lokalna – zadeklarowana wewnątrz funkcji, niewidoczna na zewnątrz;
  • Zmienna globalna – zadeklarowana poza funkcjami, dostępna wszędzie;

Aby w funkcji zmodyfikować zmienną globalną, użyj słowa kluczowego global.

licznik = 0
def zwieksz():
    global licznik
    licznik += 1

6. Dokumentacja funkcji (docstring)

Pierwsza linia w ciele funkcji może być napisem dokumentacyjnym:

def suma(a, b):
    """Zwraca sumę dwóch liczb."""
    return a + b

Do docstringów można się odwoływać przez help(nazwa_funkcji) lub nazwa_funkcji.__doc__.

7. Dobre praktyki i wskazówki

  • Nazewnictwo – używaj opisowych nazw; trzymaj się konwencji snake_case (np. policz_sume);
  • Jedna funkcja – jedno zadanie – funkcje powinny być krótkie i wykonywać pojedynczą czynność;
  • Komentowane docstringiem – każda funkcja powinna mieć krótką dokumentację;
  • Wcięcia – zachowuj poprawne wcięcia (najlepiej 4 spacje zgodnie z PEP8);
  • Unikaj efektów ubocznych – funkcja powinna unikać modyfikowania zmiennych globalnych.

8. Wywoływanie i zastosowanie funkcji

Funkcję uruchamiasz przez podanie jej nazwy oraz ewentualnych argumentów:

dodaj(3, 5)
powitanie()

Funkcje są często używane w bardziej złożonych strukturach, np. jako argumenty innych funkcji (funkcje wyższego rzędu).

9. Zaawansowane zastosowania

  • Rekurencja – funkcja wywołuje samą siebie (np. obliczanie silni);
  • Funkcje anonimowe (lambda) – krótkie, jednowierszowe funkcje: kwadrat = lambda x: x * x;
  • Funkcje jako obiekty – można przekazywać funkcje jako argumenty: def zastosuj(fun, x): return fun(x).

10. Podsumowanie

Definiowanie funkcji przy pomocy def to podstawa pisania czytelnych, modularnych i łatwych w utrzymaniu programów w Pythonie. Pamiętaj o dokumentowaniu funkcji, dobrych praktykach pisania kodu oraz wykorzystywaniu elastyczności, jaką daje obsługa argumentów.

Źródła
nofluffjobs.com
chyla.org
cscircles.cemc.uwaterloo.ca

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *