12. Funkcje

Uwaga: Dobrą praktyką jest pisanie kodu w języku angielskim - nazwy zmiennych, funkcji i komentarzy. Dzięki temu kod jest uniwersalny i zrozumiały dla programistów z całego świata.

Czasami chcemy wykonywać podobne rzeczy dla różnych wartości. Np. chcemy pomalować całe mieszkanie i musimy policzyć powierzchnię ścian dla każdego pokoju. Mamy pokoje o różnych wymiarach, ale samo liczenie będzie wyglądać dokładnie tak samo:

  • Malujemy pokój o wymiarach 6m x 5m i wysokości 2,5 m.

  • Sumujemy szerokości ścian: 26 + 25 = 22

  • Wyliczamy powierzchnię ścian: 22 × 2,5 = 55

  • Wyliczamy powierzchnię sufitu: 6 × 5 = 30

  • Dodajemy powierzchnię ścian i sufitu: 55 + 30 = 85

I tak dla 7 różnych pomieszczeń w naszym domu. Ale możemy to skrócić. W końcu chodzi o to, by zrobić coś takiego:

x = jedna_sciana
y = druga_sciana
z = wysokosc
szer_scian = 2*x + 2*y
pow_scian = szer_scian * wysokosc
pow_sufitu = x * y
pow_malowania = pow_scian + pow_sufitu

Nasze zmienne elementy to x, y i z.

Do wykonywania takich czynności przyda nam się funkcja. Definicja funkcji wygląda następująco:

def nazwa_funkcji():
    # co ma się wydarzyć

# np.:
def greeting():
    print('Hello World!')

Teraz funkcję należy wywołać:

nazwa_funkcji()
greeting()

Przy każdym wywołaniu funkcji zadziała ona tak samo.

Ale co z naszymi zmiennymi parametrami? Otóż w nawiasach przy nazwie funkcji określmy właśnie te parametry. Np.

def greeting(name):
    print('Hello ' + name)

Przy wywołaniu w miejscu parametru należy wstawić istniejące dane, np.

greeting('Marta')
# >>> Hello Marta
greeting('Ania')
# >>> Hello Ania

Wróćmy do liczenia powierzchni: nasze zmienne parametry to szerokość jednej ściany, drugiej ściany i wysokość, czyli:

def painting_area(wall_1, wall_2, height):
    # ....

Teraz wnętrze naszej funkcji:

def painting_area(wall_1, wall_2, height):
    x = wall_1
    y = wall_2
    z = height
    walls_width = 2*x + 2*y
    walls_area = walls_width * height
    ceiling_area = x * y
    total_painting_area = walls_area + ceiling_area
    
    print(total_painting_area)

I jej wywołanie:

painting_area(6, 5, 2.5)
painting_area(3, 4, 2.5)

🧪 Zadanie 1

W swoim pliku Python napisz funkcję o nazwie hello_nerds_coding_gang, która po wywołaniu wyświetli następujący napis: “Cześć, [tu poda imię osoby podanej w wywołaniu]! Witaj na warsztatach!”.

# Przykład wywołania:
hello_nerds_coding_gang('Anna')
# >>> Cześć, Anna! Witaj na warsztatach!

🧪 Zadanie 2

Przeanalizuj poniższy kod

def menu(option):
    if option == 1:
        print("Jeden")
    elif option == 2:
        print("Dwa")
    elif option == 3:
        print("Trzy")
    elif option == 4:
        print("Cztery")
    else:
        print("Ohooo")


menu(1)
choice = 2
menu(choice)
menu(4)

Na podstawie powyższego kodu utwórz menu użytkownika, w którym:

Program wyświetla użytkownikowi listę kategorii posiłków:

1 – Śniadanie
2 – Obiad
3 – Kolacja
4 – Deser
  • Użytkownik wpisuje numer kategorii (1–4).
  • Program odpowiada konkretną propozycją posiłku w zależności od wybranej kategorii.
  • Jeśli użytkownik wpisze inną liczbę niż 1–4, program wyświetla komunikat, ze nie zna takiego dania

Przykład działania

Wybierz kategorię posiłku:
1 - Śniadanie
2 - Obiad
3 - Kolacja
4 - Deser
Podaj numer kategorii: 2
Propozycja na obiad: Pieczone tofu z ziemniakami i fasolką szparagową.

🧪 Zadanie 3

🎁 Co na prezent? Stwórz program, który: Zawiera listę pomysłów na prezent dla Twoich bliskich (np. książka, bilety do kina, zestaw herbat).

Program:

  • losowo wybiera jeden prezent z listy ( przyda się moduł random),
  • (opcjonalnie) podpowiada miejsce, gdzie można go kupić (np. Empik, Allegro, lokalny sklep).

🧪 Zadanie 4

    +
   +++
  +++++
 +++++++
+++++++++
  • użytkownik podaje rodzaj znaku
  • użytkownik podaje wysokość choinki
  • znak użytkownika nie może być literą ani cyfrą

🧪 Zadanie 5

Zakoduj tajną wiadomość 🕵️

PYTHON JEST SUPER
  • stwórz plik secret1.py zaawierający algorytm, który zmieni powyższą wiadomość w ciąg ”RZUIPO-KFTU-TWRFS”
  • wymyśl własny algorytm kodujący (możesz skorzystać z istniejących np. klasyczne/harcerskie) jako secret2.py
  • napisz program secret3.py, które odkoduje twoją wiadomość

🧪 Zadanie 6

Śledź robota 🤖 Robot porusza się w płaszczyźnie zaczynając od pierwotnego punktu (0,0). Robot może poruszać się w GÓRĘ, W DÓŁ, ​​W LEWO i W PRAWO, wykonując określone kroki. Ślad ruchu robota pokazano następująco:

UP 5
DOWN 3
LEFT 3
RIGHT 2

Liczby po kierunku są krokami. Napisz program do odczytu wskazówek podanych jak wyżej i oblicz odległość od aktualnej do startowej pozycji. Jeśli odległość jest liczbą dziesiętną, wyświetl po prostu najbliższą liczbę całkowitą.

Przykład:

UP 5
DOWN 3
LEFT 3
RIGHT 2

Wynik: 3

Wynik

🧪 Zadanie 7

Stwórz grę inspirowaną miłosną wróżbą z czasów szkolnych. Zasady gry przedstawia to wideo.

  1. Pobierz imiona zakochanych
  2. Policz wystąpienia każdej z liter w obu imionach oraz słowie LOVE.
  3. Redukuj liczbę elementów tablicy dodając pierwszą i ostatnią liczbę do siebie, tak długo, aż zostaną dwie cyfry.
  4. Dwie ostatnie cyfry tworzą wartość procentową dopasowania pary wg. wróżby.

Mało? Przejdź do kolejnej lekcji!

wyników pasuje do ""

    Brak wyników pasujących do""