Technikum Klasa I 45 minut PP: II.1 | s. 343

Lekcja 21: Funkcje z parametrami i bez - definiowanie

Tworzenie wlasnych funkcji - modularyzacja kodu w Pythonie

📋 Podstawa programowa: II.1
Pythondeffunkcjeparametry
00:00
Wprowadzenie
5 min
00:05
Teoria
15 min
00:20
Cwiczenia
20 min
00:40
Podsumowanie
5 min
📚

Teoria

Czym sa funkcje?

Funkcja to wydzielony, nazwany fragment kodu, ktory wykonuje okreslone zadanie. Funkcje pozwalaja na:

  • Modularyzacje - podzial programu na mniejsze, zarzadzalne czesci
  • Wielokrotne uzycie - napisz raz, uzywaj wiele razy
  • Czytelnosc - nazwy funkcji opisuja, co robi dany fragment kodu
  • Latwe testowanie - mozna testowac kazda funkcje osobno
Zasada DRY: Don't Repeat Yourself (Nie powtarzaj sie). Jesli piszesz ten sam fragment kodu wiecej niz raz - zrob z niego funkcje!

Definiowanie funkcji bez parametrow

def powitanie():
    print("Witaj na lekcji informatyki!")
    print("Dzisiejszy temat: funkcje")

# Wywolanie funkcji
powitanie()
powitanie()  # mozna wywolac wielokrotnie

Funkcje z parametrami

Parametry pozwalaja przekazywac dane do funkcji:

# Jeden parametr
def powitaj(imie):
    print(f"Czesc, {imie}!")

powitaj("Anna")   # Czesc, Anna!
powitaj("Tomek")  # Czesc, Tomek!

# Wiele parametrow
def pole_prostokata(a, b):
    wynik = a * b
    print(f"Pole prostokata {a}x{b} = {wynik}")

pole_prostokata(5, 3)   # Pole prostokata 5x3 = 15

Parametry domyslne

def powitaj(imie, powitanie="Czesc"):
    print(f"{powitanie}, {imie}!")

powitaj("Anna")              # Czesc, Anna!
powitaj("Anna", "Dzien dobry")  # Dzien dobry, Anna!

Funkcje wbudowane

Python ma wiele gotowych funkcji, ktorych juz uzywalismy:

  • print() - wyswietla tekst
  • input() - wczytuje dane od uzytkownika
  • int(), float(), str() - konwersja typow
  • len() - dlugosc napisu/listy
  • range() - generowanie zakresu liczb
  • max(), min(), sum() - operacje na kolekcjach
  • abs() - wartosc bezwzgledna
  • round() - zaokraglanie

Dokumentowanie funkcji (docstring)

def pole_kola(r):
    """Oblicza pole kola o promieniu r.

    Args:
        r: promien kola (liczba dodatnia)
    """
    import math
    wynik = math.pi * r ** 2
    print(f"Pole kola o promieniu {r} = {wynik:.2f}")
✏️

Zadania

Latwe

Zadanie 1: Funkcje geometryczne

Napisz trzy funkcje: pole_kwadratu(a), pole_prostokata(a, b), pole_trojkata(a, h). Kazda wyswietla pole odpowiedniej figury. Przetestuj je, wywolujac z roznymi argumentami.

Pokaz przykladowe rozwiazanie
def pole_kwadratu(a):
    print(f"Pole kwadratu o boku {a} = {a * a}")

def pole_prostokata(a, b):
    print(f"Pole prostokata {a}x{b} = {a * b}")

def pole_trojkata(a, h):
    print(f"Pole trojkata (a={a}, h={h}) = {a * h / 2}")

pole_kwadratu(5)
pole_prostokata(4, 7)
pole_trojkata(6, 3)
Latwe

Zadanie 2: Linia separatora

Napisz funkcje separator(znak, dlugosc) z domyslnymi wartosciami: znak="-", dlugosc=40. Funkcja wyswietla linie z podanego znaku. Wywolaj ja na rozne sposoby.

Pokaz przykladowe rozwiazanie
def separator(znak="-", dlugosc=40):
    print(znak * dlugosc)

separator()           # ----------------------------------------
separator("=")        # ========================================
separator("*", 20)    # ********************
separator("#", 50)    # ##################################################
Srednie

Zadanie 3: Menu z funkcjami

Napisz program z menu: 1) Oblicz pole kola, 2) Oblicz obwod kola, 3) Koniec. Kazda opcja to osobna funkcja. Program dziala w petli az uzytkownik wybierze "Koniec".

Pokaz przykladowe rozwiazanie
import math

def pole_kola():
    r = float(input("Podaj promien: "))
    print(f"Pole kola = {math.pi * r**2:.2f}")

def obwod_kola():
    r = float(input("Podaj promien: "))
    print(f"Obwod kola = {2 * math.pi * r:.2f}")

def menu():
    print("\n--- MENU ---")
    print("1. Oblicz pole kola")
    print("2. Oblicz obwod kola")
    print("3. Koniec")

while True:
    menu()
    wybor = input("Twoj wybor: ")
    if wybor == "1":
        pole_kola()
    elif wybor == "2":
        obwod_kola()
    elif wybor == "3":
        print("Do zobaczenia!")
        break
    else:
        print("Nieprawidlowy wybor!")
Trudne

Zadanie 4: Rozbudowany kalkulator

Napisz kalkulator z funkcjami: dodaj(a, b), odejmij(a, b), pomnoz(a, b), podziel(a, b), potega(a, n). Funkcja podziel powinna sprawdzac dzielenie przez zero. Calosc oplec menu w petli.

Pokaz przykladowe rozwiazanie
def dodaj(a, b):
    print(f"{a} + {b} = {a + b}")

def odejmij(a, b):
    print(f"{a} - {b} = {a - b}")

def pomnoz(a, b):
    print(f"{a} * {b} = {a * b}")

def podziel(a, b):
    if b == 0:
        print("Blad: dzielenie przez zero!")
    else:
        print(f"{a} / {b} = {a / b:.4f}")

def potega(a, n):
    print(f"{a} ^ {n} = {a ** n}")

while True:
    print("\n=== KALKULATOR ===")
    print("1. Dodawanie  2. Odejmowanie  3. Mnozenie")
    print("4. Dzielenie  5. Potega      6. Koniec")
    wybor = input("Wybierz: ")

    if wybor == "6":
        break

    a = float(input("Podaj a: "))
    b = float(input("Podaj b: "))

    if wybor == "1": dodaj(a, b)
    elif wybor == "2": odejmij(a, b)
    elif wybor == "3": pomnoz(a, b)
    elif wybor == "4": podziel(a, b)
    elif wybor == "5": potega(a, int(b))
    else: print("Nieprawidlowy wybor!")
🎥

Materialy wideo

kojo 7 definiowanie bez parametru
Mateusz Dulak
Funkcja kwadratowa z parametrem, wzory wjeta (Wzory Viete'a), O co w tym chodzi?
PATOMATMA
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 20: Petla while Lekcja 22: Funkcje - zwracanie wartosci, zakresy zmiennych →