Funkcje w Pythonie — krótkie wprowadzenie
Cześć! Dzisiaj nauczysz się więcej o funkcjach w Pythonie. Funkcja to mały program w środku programu — możesz ją nazwać i używać wielokrotnie. Dzięki temu nie musisz powtarzać tego samego kodu wiele razy.
1. Co to jest funkcja? (najprostsze wyjaśnienie)
Funkcja to blok kodu, który ma nazwę. Definiujemy ją słowem def, potem nazwę, nawiasy i dwukropek. Wewnątrz funkcji piszesz instrukcje, które mają się wykonać, gdy wywołasz funkcję.
Przykład:
def powitanie():
print("Witaj na lekcji Pythona!")
Aby funkcja coś zrobiła, musisz ją wywołać (napisać jej nazwę z nawiasami):
powitanie() # uruchomi kod w funkcji i wypisze tekst
2. Funkcje z parametrami
Parametry to dane, które możesz przekazać do funkcji. Dzięki nim funkcja może działać inaczej w zależności od tego, co jej podasz.
Przykład:
def przywitanie(imie):
print("Cześć, " + imie + "!")
przywitanie("Ania") # wypisze: Cześć, Ania!
przywitanie("Kuba") # wypisze: Cześć, Kuba!
Parametry są jak puste miejsca w przepisie — za każdym razem możesz wstawić inne składniki.
3. Funkcja, która coś zwraca — return
Funkcja może zwracać wartość. To znaczy: zamiast tylko coś wypisać, może dać wynik, którego potem użyjesz.
Przykład:
def dodaj(a, b):
return a + b
wynik = dodaj(3, 5)
print(wynik) # wypisze 8
print(dodaj(10, 20)) # wypisze 30
Różnica: print tylko pokazuje wynik na ekranie. return daje wartość, którą możesz przypisać do zmiennej lub użyć dalej.
4. Przykłady z wykorzystaniem tego, co już umiesz (pętle, listy, warunki)
-
Przykład 1 — funkcja, która sumuje wszystkie liczby z listy (użycie pętli):
def suma_listy(liczby): suma = 0 for x in liczby: suma = suma + x return suma print(suma_listy([1, 2, 3, 4])) # 10 -
Przykład 2 — funkcja, która sprawdza parzystość (użycie instrukcji warunkowej):
def czy_parzysta(n): if n % 2 == 0: return True else: return False print(czy_parzysta(4)) # True print(czy_parzysta(7)) # False -
Przykład 3 — funkcja, która wypisuje przywitania dla listy imion (użycie listy i pętli):
def przywitaj_wszystkich(lista_imion): for imie in lista_imion: print("Cześć, " + imie + "!") przywitaj_wszystkich(["Ania", "Bartek", "Zosia"])
5. Funkcje — ważne rzeczy do zapamiętania
- Nazwa funkcji powinna mówić, co robi (np.
dodaj,policz_sume). - Parametry to dane wejściowe w nawiasach:
def f(a, b):. - Wywołanie funkcji:
f(2, 3). returnprzerywa funkcję i oddaje wartość.- Funkcja może wypisywać (
print) i/lub zwracać (return) wartość.
6. Małe porównanie: funkcja wypisująca vs funkcja zwracająca
def powiedz_czesc():
print("Cześć!")
def zwroc_czesc():
return "Cześć!"
powiedz_czesc() # wypisze: Cześć!
tekst = zwroc_czesc()
print(tekst + " Jak leci?") # używasz zwróconego tekstu dalej
Jeśli chcesz użyć wyniku w kolejnych instrukcjach (np. dodać do tekstu, porównać), użyj return.
7. Funkcja może używać innej funkcji
def dodaj(a, b):
return a + b
def suma_trzech(a, b, c):
return dodaj(dodaj(a, b), c)
print(suma_trzech(1, 2, 3)) # 6
8. Przykłady bardziej „praktyczne” dla Ciebie
-
Przykład — funkcja sprawdzająca, czy imię jest na liście ulubionych:
def czy_ulubione(imie, lista_ulubionych): if imie in lista_ulubionych: return "Tak, to jest ulubione imię" else: return "Nie, nie ma go na liście" print(czy_ulubione("Ania", ["Ania", "Zosia"])) -
Przykład — funkcja, która zmienia wszystkie litery w liście na wielkie (bez zmian oryginału):
def na_wielkie(lista_tekstow): nowa = [] for t in lista_tekstow: nowa.append(t.upper()) return nowa print(na_wielkie(["Ania", "Kasia"])) # ["ANIA", "KASIA"]
9. Dobre praktyki (krótkie)
- Nazywaj funkcje jasno:
policz_punktyzamiastpp. - Używaj małych funkcji — każda funkcja niech robi jedną rzecz (łatwiej testować).
- Testuj funkcję od razu: najpierw mały przykład, potem trudniejsze przypadki.
- Dodaj komentarz lub krótką informację (docstring), co robi funkcja:
def dodaj(a, b):
"""Zwraca sumę a i b"""
return a + b
10. Zadania do samodzielnego rozwiązania (z podpowiedziami i rozwiązaniami)
-
Zadanie 1: Napisz funkcję
powiedz_czesc(), która wypisze "Cześć!" i wywołaj ją.Podpowiedź: użyj
print.Rozwiązanie:
def powiedz_czesc(): print("Cześć!") powiedz_czesc() -
Zadanie 2: Napisz funkcję
dodaj(a, b), która zwraca sumę a i b. Przetestuj ją.Podpowiedź: użyj
return a + b.Rozwiązanie:
def dodaj(a, b): return a + b print(dodaj(3, 5)) # 8 -
Zadanie 3: Stwórz funkcję
przywitanie(imie)jak wyżej i wywołaj ją z kilkoma imionami.Rozwiązanie:
def przywitanie(imie): print("Cześć, " + imie + "!") przywitanie("Ola") przywitanie("Marek") -
Zadanie 4: Napisz funkcję
policz_sume_listy(liczby), która zwraca sumę elementów listy.Podpowiedź: użyj
fori zmiennej pomocniczej.Rozwiązanie:
def policz_sume_listy(liczby): suma = 0 for x in liczby: suma += x return suma print(policz_sume_listy([2, 4, 6])) # 12 -
Zadanie 5: Napisz funkcję
ile_parzystych(liczby), która zlicza, ile w liście jest liczb parzystych.Podpowiedź: użyj
% 2 == 0.Rozwiązanie:
def ile_parzystych(liczby): licznik = 0 for n in liczby: if n % 2 == 0: licznik += 1 return licznik print(ile_parzystych([1,2,3,4,5,6])) # 3 -
Zadanie 6 (trochę trudniejsze): Napisz funkcję
znajdz_najdluzsze(imiona), która zwraca najdłuższe imię z listy.Podpowiedź: możesz użyć
len().Rozwiązanie:
def znajdz_najdluzsze(imiona): najd = imiona[0] for i in imiona: if len(i) > len(najd): najd = i return najd print(znajdz_najdluzsze(["Ania","Katarzyna","Marek"])) # Katarzyna -
Zadanie 7 (łączenie funkcji): Użyj
dodaji napiszsuma_para(a,b,c,d), która dodaa+bic+d, a potem zwróci ich sumę.Podpowiedź: wewnątrz użyj
dodaj.Rozwiązanie:
def suma_para(a, b, c, d): return dodaj(dodaj(a, b), dodaj(c, d)) print(suma_para(1,2,3,4)) # 10 -
Zadanie 8 (opcjonalne, kreatywne): Napisz funkcję
powitanie_imieniny(imiona), która dla listy imion wyświetli: Witaj, Ania! Witaj, Kuba! ...Podpowiedź: użyj pętli
for.Rozwiązanie:
def powitanie_imieniny(imiona): for i in imiona: print("Witaj, " + i + "!") powitanie_imieniny(["Ania","Kuba","Zosia"])
11. Mały test — sprawdź się!
Spróbuj odpowiedzieć bez uruchamiania programu:
- Co zrobi funkcja, która nie ma
return, ale wypisuje coś za pomocąprint? - Co się stanie, jeśli wywołasz funkcję z za małą liczbą argumentów (np.
dodaj(1))? - Jakie są trzy rzeczy, które funkcja może robić? (np. wypisać, zwrócić wartość, zmodyfikować listę)
12. Szybkie odpowiedzi (klucz)
- Funkcja bez
returnzwykle zwracaNone(ale może wypisywać tekst). - Wywołanie funkcji z za małą liczbą argumentów spowoduje błąd — Python powie, że zabrakło argumentu.
- Funkcja może: wypisać coś na ekran, zwrócić wartość, zmienić (np. elementy) listy przekazanej do niej.
Na koniec — kilka wskazówek dla Ciebie
- Najpierw pomyśl, co ma robić funkcja (jeden prosty cel).
- Przetestuj ją na prostych danych.
- Jeśli coś nie działa, dodaj
printw środku, żeby zobaczyć co się dzieje.