Klasa 8 szkoły podstawowej • Python
Własne funkcje pomagają porządkować program i wielokrotnie wykorzystywać kod. Poznaj def, parametry, argumenty oraz return. Na końcu wykonaj trzy proste ćwiczenia.
1. Czym jest funkcja?
Znasz już funkcje wbudowane: print() wyświetla dane, a input() odczytuje tekst z klawiatury. Możemy również tworzyć własne funkcje.
- Nie trzeba przepisywać tego samego kodu w wielu miejscach.
- Łatwiej podzielić duże zadanie na mniejsze części.
- Poprawkę wprowadzamy w definicji funkcji, a korzystają z niej wszystkie jej wywołania.
2. Definicja i wywołanie — to dwa różne kroki
def powitaj():
print("Witaj na lekcji Pythona!")
powitaj()
powitaj()
def tworzy funkcję. Samo zdefiniowanie jej nie wykonuje jej treści. Każde powitaj() uruchamia funkcję, dlatego powitanie pojawi się dwa razy.
| Element | Znaczenie |
|---|---|
def |
Rozpoczyna definicję funkcji. |
powitaj |
Nazwa funkcji. |
() |
Nawiasy — tutaj funkcja nie przyjmuje argumentów. |
: |
Dwukropek po nagłówku. |
| Wcięty blok | Treść funkcji; zalecane wcięcie to 4 spacje. |
powitaj() |
Wywołanie funkcji. |
3. Parametr i argument
def powitaj_osobe(imie):
print("Cześć,", imie)
powitaj_osobe("Ola")
powitaj_osobe("Adam")
Program wyświetli Cześć, Ola oraz Cześć, Adam.
| Pojęcie | Wyjaśnienie | Przykład |
|---|---|---|
| Parametr | Nazwa w definicji funkcji, przez którą funkcja otrzymuje dane. | imie w def powitaj_osobe(imie): |
| Argument | Wartość przekazywana podczas wywołania. | "Ola" w powitaj_osobe("Ola") |
Argumentem może być też wartość zmiennej:
uczen = input("Jak masz na imię? ")
powitaj_osobe(uczen)
4. Funkcja, która wyświetla dane
Poniższa funkcja tworzy rosnący wzór ze znaków. Ma dwa parametry: znak i ile.
def pokaz_wzor(znak, ile):
for numer in range(1, ile + 1):
print(znak * numer)
pokaz_wzor("*", 4)
Wynik:
*
**
***
****
Mnożenie tekstu przez liczbę powtarza tekst. Funkcja używa print(), aby pokazać wzór. Nie zwraca obliczonego wyniku przez return; po dojściu do końca zwraca automatycznie None (brak wartości użytkowej).
5. Funkcja zwracająca wynik — return
return przekazuje wynik do miejsca wywołania i kończy bieżące wykonanie funkcji.
def pole_prostokata(a, b):
return a * b
pole = pole_prostokata(7, 4)
print("Pole wynosi:", pole)
Wynik: Pole wynosi: 28. Funkcja wykonuje mnożenie i zwraca 28. Dopiero print() poza funkcją wyświetla tę wartość.
7 i 4
a = 7, b = 4
return a * bpole = 28
| Wywołanie | Zwrócona wartość |
|---|---|
pole_prostokata(7, 4) |
28 |
pole_prostokata(5, 3) |
15 |
pole_prostokata(6, 6) |
36 |
6. print() a return
| print() | return |
|---|---|
| Wyświetla dane na ekranie. | Przekazuje wynik do miejsca wywołania. |
| Nie kończy wykonania funkcji. | Kończy bieżące wykonanie funkcji. |
| Samo wyświetlenie wyniku nie pozwala użyć go jako zwróconej liczby. | Wynik możemy zapisać w zmiennej lub użyć w dalszych obliczeniach. |
def podwoj(liczba):
return 2 * liczba
wynik = podwoj(6)
print(wynik + 3)
Program wyświetli 15, ponieważ funkcja zwraca 12, a następnie program dodaje 3.
7. Pełny program z input()
def pole_prostokata(a, b):
return a * b
dlugosc = int(input("Podaj długość: "))
szerokosc = int(input("Podaj szerokość: "))
pole = pole_prostokata(dlugosc, szerokosc)
print("Pole prostokąta:", pole)
Wpisuj dodatnie liczby całkowite. input() zwraca tekst, dlatego do obliczeń zamieniamy go na liczbę za pomocą int(). Dla boków 8 i 3 wynik wynosi 24.
8. Nazwy funkcji i najczęstsze błędy
- Wybieraj nazwy opisujące działanie, np.
oblicz_obwod,pokaz_wzor. - Stosuj małe litery i podkreślenia między słowami.
- Nazwa może zawierać litery, cyfry i podkreślenia, ale nie może zaczynać się cyfrą.
- Nie używaj słów kluczowych, np.
def,for,return, ani nazw funkcji wbudowanych, np.print. - Python dopuszcza polskie litery, ale dla wygody i zgodności przyjmij nazwy bez nich.
- Wielkie i małe litery mają znaczenie:
poleiPoleto różne nazwy. - Zdefiniuj funkcję, zanim program dojdzie do jej wywołania.
- Pamiętaj o dwukropku, nawiasach i wcięciach.
returnzapisujemy wewnątrz funkcji. - W przykładach bez parametrów domyślnych liczba podanych argumentów musi odpowiadać liczbie parametrów.
9. Ćwiczenia dla uczniów
Ćwiczenie 1. Powitanie
Napisz funkcję powitaj(imie), która wyświetla „Witaj,” i podane imię. Pobierz imię przez input(), a następnie wywołaj funkcję. Zapisz program jako powitanie.py.
Pokaż rozwiązanie ćwiczenia 1
def powitaj(imie):
print("Witaj,", imie)
uczen = input("Podaj imię: ")
powitaj(uczen)
Ćwiczenie 2. Obwód kwadratu
Napisz funkcję obwod_kwadratu(bok), która zwraca obwód. Pobierz dodatnią, całkowitą długość boku, zapisz wynik w zmiennej i wyświetl go poza funkcją. Zapisz program jako obwod.py.
Sprawdź: bok 3 → obwód 12; bok 8 → obwód 32.
Pokaż rozwiązanie ćwiczenia 2
def obwod_kwadratu(bok):
return 4 * bok
bok = int(input("Podaj bok: "))
wynik = obwod_kwadratu(bok)
print("Obwód:", wynik)
Ćwiczenie 3. Funkcja i pętla
Utwórz funkcję pokaz_wzor(znak, ile) z lekcji. Pobierz znak i liczbę wierszy z klawiatury. Wywołaj funkcję tak, aby dla znaku # i liczby 3 otrzymać:
#
##
###
Zapisz program jako wzor.py. Wyjaśnij, które nazwy są parametrami, a które wartości są argumentami.
Pokaż rozwiązanie ćwiczenia 3
def pokaz_wzor(znak, ile):
for numer in range(1, ile + 1):
print(znak * numer)
symbol = input("Podaj jeden znak: ")
wiersze = int(input("Podaj dodatnią liczbę wierszy: "))
pokaz_wzor(symbol, wiersze)
Parametry: znak i ile. Argumenty: wartości zmiennych symbol i wiersze, np. "#" oraz 3.
def definiuje funkcję, wywołanie ją uruchamia, parametry odbierają argumenty, a return zwraca wynik. print() wyświetla dane.









