Programy

Wybierz program, aby zobaczyć wszystkie dostępne lekcje

Word Excel PowerPoint Scratch GIMP Canva Python Pivot Animator
Google Inne

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?

Funkcja to nazwana część programu wykonująca określone zadanie. Może przyjmować dane, wykonywać działania i zwracać wynik. Uruchamiamy ją przez wywołanie jej nazwy z nawiasami.

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ść.

Argumenty
7 i 4
→
pole_prostokata(a, b)
a = 7, b = 4
return a * b
→
Zwrócony wynik
pole = 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: pole i Pole to różne nazwy.
  • Zdefiniuj funkcję, zanim program dojdzie do jej wywołania.
  • Pamiętaj o dwukropku, nawiasach i wcięciach. return zapisujemy 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.

Zapamiętaj: def definiuje funkcję, wywołanie ją uruchamia, parametry odbierają argumenty, a return zwraca wynik. print() wyświetla dane.

Powtórz pętlę for • Powtórz input()