
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
fori 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ę.
!!! Raport prześlij nauczycielowi przez Office.com (chmura) zgodnie z instrukcją.
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 <= 5 and 8 <= godzina < 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 < 15: zdrowie -= 3
if glod > 80: zdrowie -= 3
if radosc < 20: zdrowie -= 2
# ograniczenia
glod = ogranicz(glod)
energia = ogranicz(energia)
radosc = ogranicz(radosc)
zdrowie = ogranicz(zdrowie)
if zdrowie <= 0:
print("\n KONIEC GRY – jesteś przemęczony.")
break
# — PODSUMOWANIE —
print(„\nTYDZIEŃ ZAKOŃCZONY”)
print(„WIEDZA:”, wiedza)
print(„ZDROWIE:”, zdrowie)
