Cele lekcji

Po tej lekcji:

  • rozumiesz, czym jest funkcja (podprogram) w Pythonie,
  • potrafisz zdefiniować funkcję z parametrami i bez parametrów,
  • wiesz, czym jest lista i do czego służy,
  • potrafisz wprowadzać dane do listy i je wyświetlać,
  • potrafisz uporządkować program, dzieląc go na funkcje,
  • dokumentujesz swoją pracę w formie raportu.

Wprowadzenie

Do tej pory korzystałeś z pętli for i funkcji range().
Teraz czas zrobić kolejny ważny krok:
porządkowanie programu i praca na większej liczbie danych.

W tym celu w Pythonie:

Naciśnij przycisk Run.
Zobacz, co pojawia się w oknie wyników, zapisz sprawdzony kod na swojej chmurze i udostępnij folder nauczycielowi. Opis organizacji plików z lekcji znajduje się w punkcie 6 niniejszej instrukcji.


1. Funkcja – co to jest?

Funkcja to wydzielony fragment programu, który:

  • ma własną nazwę,
  • może mieć parametry,
  • może zwracać wartość albo tylko wykonywać instrukcje.

!!! Funkcję najpierw definiujemy, a dopiero potem wywołujemy.

schemat funkcji – nagłówek, parametry, treść


2. Ogólna postać funkcji w Pythonie

Funkcja niezwracająca wartości

def nazwa_funkcji():
    instrukcje

Funkcja zwracająca wartość

def nazwa_funkcji(parametr):
    instrukcje
    return wartosc

!!! Zwróć uwagę na wcięcia – są obowiązkowe.


3. Przykład funkcji niezwracającej wartości

Skopiuj kod do edytora i uruchom program.

def pokaz_znaki(znaki):
    for i in range(5):
        print(znaki)

emotikon = input("Wprowadź znaki emotikona: ")
pokaz_znaki(emotikon)

input("\nNaciśnij Enter, aby zakończyć")

Zwróć uwagę:

  • funkcja ma parametr,
  • nie używa return,
  • tylko wyświetla dane.

ZRZUT EKRANU DZIAŁAJĄCEGO PROGRAMU


4. Funkcja zwracająca wartość – przykład

Skopiuj i uruchom program.

def szescian(a):
    return a * a * a

bok = int(input("Podaj długość boku sześcianu: "))
wynik = szescian(bok)

print("Objętość sześcianu wynosi:", wynik)

input("\nNaciśnij Enter, aby zakończyć")

Zwróć uwagę:

  • funkcja zwraca wartość,
  • wynik obliczeń jest używany w programie głównym.

przekazywanie parametru i return


5. Lista – po co nam lista?

Jeżeli w programie pojawia się wiele danych, zamiast wielu zmiennych stosujemy listę.

Lista:

  • przechowuje wiele wartości,
  • ma indeksy (numerowane od 0),
  • umożliwia dostęp do każdego elementu.

Przykład definicji listy

a = [5, 27, 18, 3, 4]

indeksy listy i komórki pamięci


6. Wprowadzanie danych do listy – funkcje

Skopiuj cały program.

def wprowadz_dane():
    for i in range(N):
        a[i] = int(input("Podaj liczbę: "))

def wyswietl_dane():
    for i in range(N):
        print(a[i])

N = 5
a = [0] * N

wprowadz_dane()
wyswietl_dane()

input("\nNaciśnij Enter, aby zakończyć")

Co robi program:

  • tworzy listę o określonej liczbie elementów,
  • wprowadza dane z klawiatury,
  • wyświetla je w kolejnych wierszach.

7. Dlaczego dzielimy program na funkcje?

Stosowanie funkcji:

  • porządkuje kod,
  • ułatwia poprawianie błędów,
  • pozwala wielokrotnie używać tego samego fragmentu programu,
  • przygotowuje do algorytmów, które poznasz na kolejnych lekcjach.

8. Zadania – wykonaj wszystkie (obowiązkowe)

Zadanie 1

Napisz program, który:

  • wprowadza do listy 5 liczb całkowitych,
  • wyświetla je na ekranie,
  • używa dwóch funkcji.

Zadanie 2

Napisz funkcję, która:

  • przyjmuje jeden parametr,
  • oblicza pole kwadratu,
  • zwraca wynik do programu głównego.

Zadanie 3

Napisz program, który:

  • wprowadza do listy liczby,
  • wyświetla je w jednej kolumnie,
  • korzysta z pętli for i listy.

9. Dokumentowanie pracy – raport

Twoja praca musi być udokumentowana.

Przygotuj raport zawierający:

  • zrzuty ekranu działających programów,
  • krótką informację, co robi każdy program,
  • swoje imię, klasę i datę.

Podsumowanie

Na tej lekcji:

  • poznałeś funkcje i listy jako narzędzia pracy,
  • uporządkowałeś sposób pisania programów,
  • przygotowałeś się do kolejnych tematów: algorytmów na liczbach naturalnych.

10. Ekstra


=========================

TYDZIEŃ DZIECKA – PROTOTYP

inspirowane: Jones in the Fast Lane

=========================

— CZAS —

dzien = 1 # 1 = poniedziałek
godzina = 7 # start dnia
dni = [„Pn”, „Wt”, „Śr”, „Cz”, „Pt”, „So”, „Nd”]

— PARAMETRY —

glod = 30
energia = 80
radosc = 60
wiedza = 10
zdrowie = 100 # UKRYTE

def ogranicz(x):
if x < 0: return 0 if x > 100: return 100
return x

def pokaz():
print(„\n—————————-„)
print(f”{dni[dzien-1]} godz: {godzina}:00″)
print(f”GŁÓD : {glod}”)
print(f”ENERGIA : {energia}”)
print(f”RADOŚĆ : {radosc}”)
print(f”WIEDZA : {wiedza}”)
print(„ZDROWIE : (ukryte)”)
print(„—————————-„)

def nowa_godzina():
global godzina, dzien
godzina += 1
if godzina >= 24:
godzina = 0
dzien += 1

def szkola():
global wiedza, energia, radosc
wiedza += 5
energia -= 10
radosc -= 5
print(„Byłeś w szkole (obowiązkowo).”)

def nauka():
global wiedza, energia, radosc
wiedza += 8
energia -= 12
radosc -= 6
print(„Uczyłeś się w domu.”)

def ekran():
global radosc, energia
radosc += 10
energia -= 8
print(„Grałeś przed ekranem.”)

def aktywna_zabawa():
global radosc, energia, zdrowie
radosc += 6
energia -= 10
zdrowie += 3
print(„Bawiłeś się aktywnie.”)

def jedzenie():
global glod, energia
glod -= 20
energia += 5
print(„Zjadłeś posiłek.”)

def sen():
global energia, zdrowie
energia += 25
zdrowie += 5
print(„Spałeś.”)

— GŁÓWNA PĘTLA —

while dzien <= 7:

# szkoła pn–pt 8–14
if dzien &lt;= 5 and 8 &lt;= godzina &lt; 14:
    szkola()
    nowa_godzina()
else:
    pokaz()
    print("Co robisz?")
    print("[n] nauka  [e] ekran  [a] aktywnie")
    print("[j] jedz   [s] śpij   [q] koniec")
    w = input(">>> ")

    if w == "n": nauka()
    elif w == "e": ekran()
    elif w == "a": aktywna_zabawa()
    elif w == "j": jedzenie()
    elif w == "s": sen()
    elif w == "q": break

    nowa_godzina()

# --- NATURALNE ZMIANY ---
glod += 4
energia -= 3

# zdrowie ukryte
if energia &lt; 15: zdrowie -= 3
if glod > 80: zdrowie -= 3
if radosc &lt; 20: zdrowie -= 2

# ograniczenia
glod = ogranicz(glod)
energia = ogranicz(energia)
radosc = ogranicz(radosc)
zdrowie = ogranicz(zdrowie)

if zdrowie &lt;= 0:
    print("\n KONIEC GRY – jesteś przemęczony.")
    break

# — PODSUMOWANIE —

print(„\nTYDZIEŃ ZAKOŃCZONY”)
print(„WIEDZA:”, wiedza)
print(„ZDROWIE:”, zdrowie)