Temat 1/ Klasa 3/ Lekcja 2
1. Po co programowi decyzje?
Nie każdy program wykonuje zawsze dokładnie te same czynności.
Przykład:
Jeżeli temperatura jest niższa od 0°C, wyświetl ostrzeżenie „Uwaga, mróz!”.
Program musi sprawdzić warunek i na jego podstawie zdecydować, co zrobić.
Służy do tego instrukcja warunkowa if.
2. Warunek
Warunek to wyrażenie, którego wynik może być prawdziwy albo fałszywy.
Na przykład:
wiek >= 18
Warunek oznacza:
Czy wartość zmiennej
wiekjest większa lub równa 18?
Przydatne operatory porównania:
>– większe niż,<– mniejsze niż,>=– większe lub równe,<=– mniejsze lub równe,==– równe,!=– różne.
Uwaga:
=
służy do przypisania wartości:
wiek = 17
Natomiast:
==
służy do porównywania:
wiek == 17
3. Instrukcja if
Przykład:
temperatura = float(input("Podaj temperaturę: "))if temperatura < 0: print("Uwaga, mróz!")
Jeżeli użytkownik poda -5, komunikat zostanie wyświetlony.
Jeżeli poda 10, program nie wykona instrukcji znajdującej się wewnątrz if.
Zwróć uwagę na:
:
po warunku oraz wcięcie przed print().
W Pythonie wcięcia mają znaczenie.
4. if i else
Często chcemy przewidzieć dwie możliwości.
wiek = int(input("Podaj wiek: "))if wiek >= 18: print("Osoba pełnoletnia")else: print("Osoba niepełnoletnia")
else oznacza:
wykonaj te instrukcje, jeżeli warunek w
ifnie został spełniony.
5. Więcej możliwości – elif
Załóżmy, że chcemy ocenić temperaturę:
- poniżej 0 – mróz,
- od 0 do 20 – chłodno,
- powyżej 20 – ciepło.
temperatura = float(input("Podaj temperaturę: "))if temperatura < 0: print("Mróz")elif temperatura <= 20: print("Chłodno")else: print("Ciepło")
Python sprawdza warunki kolejno od góry.
6. Operatory logiczne
Czasami jeden warunek nie wystarcza.
Możemy używać:
and– oba warunki muszą być prawdziwe,or– wystarczy, że jeden warunek jest prawdziwy,not– zaprzeczenie warunku.
Przykład:
wiek = int(input("Podaj wiek: "))if wiek >= 13 and wiek <= 19: print("Wiek mieści się w przedziale od 13 do 19 lat.")
7. Przykład – liczba dodatnia, ujemna czy zero?
Plan:
- pobierz liczbę,
- jeżeli jest większa od 0 – wyświetl „dodatnia”,
- jeżeli jest mniejsza od 0 – wyświetl „ujemna”,
- w przeciwnym przypadku – „zero”.
liczba = float(input("Podaj liczbę: "))if liczba > 0: print("Liczba dodatnia")elif liczba < 0: print("Liczba ujemna")else: print("Zero")
8. Testowanie programu
Programu nie wystarczy napisać. Trzeba sprawdzić, czy działa.
Dla poprzedniego programu warto przetestować co najmniej:
5-30
Dlaczego?
Ponieważ każda wartość sprawdza inną możliwość.
Takie wartości nazywamy danymi testowymi.
Zadanie podsumowujące
Napisz program pobierający liczbę punktów ucznia.
Jeżeli uczeń zdobył co najmniej 50 punktów, program powinien wyświetlić:
Zaliczone
W przeciwnym przypadku:
Niezaliczone
Najpierw napisz i przetestuj własny program.
Które rozwiązanie jest prawidłowe?
A
punkty = int(input("Podaj liczbę punktów: "))if punkty > 50: print("Zaliczone")else: print("Niezaliczone")
B
punkty = int(input("Podaj liczbę punktów: "))if punkty >= 50: print("Zaliczone")else: print("Niezaliczone")
C
punkty = int(input("Podaj liczbę punktów: "))if punkty <= 50: print("Zaliczone")else: print("Niezaliczone")
D
punkty = int(input("Podaj liczbę punktów: "))if punkty >= 50: print("Niezaliczone")else: print("Zaliczone")
Wskazówka
Wyrażenie „co najmniej 50” oznacza:
50 lub więcej
Zastanów się szczególnie, co powinno się wydarzyć dla dokładnie 50 punktów.
Odpowiedź
Prawidłowa odpowiedź: B.
Warunek:
punkty >= 50
obejmuje również dokładnie 50 punktów.
A jest błędne, ponieważ > 50 nie obejmuje wartości 50.
C jest błędne, ponieważ warunek został odwrócony.
D jest błędne, ponieważ komunikaty zostały zamienione miejscami.
Dobre dane testowe to:
495051
Szczególnie ważna jest wartość graniczna 50.
Zadanie z gwiazdką ★
Napisz program, który pobiera temperaturę i wyświetla:
Mróz– gdy temperatura jest mniejsza od 0,Chłodno– gdy wynosi od 0 do 15 włącznie,Ciepło– gdy jest większa od 15.
Rozwiązanie
temperatura = float(input("Podaj temperaturę: "))if temperatura < 0: print("Mróz")elif temperatura <= 15: print("Chłodno")else: print("Ciepło")
Do sprawdzenia programu warto wykorzystać między innymi:
-101516
Są to wartości znajdujące się przy granicach poszczególnych przedziałów.
