Informatyka · Python 2 · warunki

Jeśli… a jeśli nie? Program podejmuje decyzję.

Telefon ma 8% baterii. Szukasz ładowarki. Przy 90% raczej wychodzisz. Teraz zapiszemy taką decyzję w Pythonie.

  • Po lekcji „Witaj w programie”
  • Szkoła podstawowa
  • Wcięcia mają znaczenie

Po tej lekcji: napiszesz if / elif / else, ustawisz wcięcia i sprawdzisz, co dzieje się na granicy warunku.

Zakres podstawowy · materiał otwarty

Warunek daje odpowiedź True albo False.

Znasz już zmienne i wczytywanie liczby. Dodajmy porównanie: bateria < 20 jest prawdziwe dla 8, a fałszywe dla 20. Python zapisuje te odpowiedzi jako True i False.

< to mniej, > więcej, <= co najwyżej, >= co najmniej. == sprawdza równość, != nierówność. Znak = nadal przypisuje wartość. Nie zastępuje porównania.

Na początek sam if.

pierwszy-if.pypython
bateria = int(input("Poziom baterii: "))
if bateria < 20:
    print("Podłącz ładowarkę")
print("Sprawdzenie zakończone")
Wynik
Poziom baterii: 8
Podłącz ładowarkę
Sprawdzenie zakończone
  1. Dwukropek kończy nagłówek warunku i zapowiada jego blok.
  2. Cztery spacje przed pierwszym print pokazują, że ta linia należy do if. Ostatni print wrócił do lewej strony, więc wykona się także dla baterii 90.
  3. Brak else jest dozwolony. Dla 90 blok if zostanie pominięty, ale program pójdzie dalej.

If pyta pierwszy. Elif pyta dalej. Else zbiera resztę.

if zaczyna sprawdzanie. elif sprawdza kolejny warunek, tylko jeśli wcześniejsze nie pasowały. else nie ma własnego warunku i działa, gdy nic wcześniej nie pasowało. Możesz nie mieć elif ani else.

W jednym łańcuchu wykonuje się najwyżej jedna gałąź. Po pierwszym prawdziwym warunku pozostałe są pomijane, nawet jeśli samo ich porównanie też byłoby prawdziwe.

Jeden program, trzy możliwe odpowiedzi.

bateria.pypython
bateria = int(input("Ile procent baterii? "))
if bateria < 20:
    print("Podłącz ładowarkę")
elif bateria < 80:
    print("Jeszcze wystarczy")
else:
    print("Możesz wychodzić")
Wynik
Ile procent baterii? 20
Jeszcze wystarczy
  1. Zakres tu zakładamy liczbę całkowitą 0–100. Na początek nie obsługujemy błędnego wejścia.
  2. Kolejność dla 8 obie nierówności byłyby prawdziwe, ale Python po wykonaniu if już nie sprawdza elif.
  3. Granice 20 nie jest mniejsze od 20, a 80 nie jest mniejsze od 80. Zawsze sprawdzaj także równość progu.

Sprawdź w działaniu

Nie tylko wynik: zobacz, które pytania program pominął.

Wybierz poziom baterii i porównaj schemat z kodem. Skróty 19, 20, 79 i 80 pomogą sprawdzić granice. Podświetlona droga pokazuje rzeczywistą kolejność sprawdzania.

Ta interakcja wymaga włączonego JavaScriptu.

Wcięcie mówi: ta linia należy do środka.

W tej lekcji używamy 4 spacji na poziom. if, elif i else jednego łańcucha zaczynają się w tej samej kolumnie. Ich instrukcje są przesunięte. Po zakończeniu bloku wracamy do poprzedniego poziomu.

Python wymaga spójnych wcięć, a cztery spacje to przyjęta konwencja. Nie mieszaj tabulatorów i spacji. Edytor biurka zamienia Tab na 4 spacje. Nie wpisuj widocznych kropek z pokazu — oznaczają jedynie spacje. Pusty blok po dwukropku wywoła błąd.

Sprawdź w działaniu

Gdzie należy umieścić ostatni print?

Porównaj trzy wersje tego samego programu: brak wcięcia, instrukcja w środku oraz instrukcja po if. Zmień warunek i zobacz różnicę. To pokaz trzech przygotowanych wariantów.

Ta interakcja wymaga włączonego JavaScriptu.

Ćwiczenie z pomocą · samodzielna praca

Dwa wyjścia: wejście na wydarzenie.

Wczytaj wiek jako jedną liczbę całkowitą od 0 do 120. Wypisz wstep, gdy wiek wynosi co najmniej 12; w pozostałych przypadkach wypisz za mlody. Nie obsługuj danych spoza zakresu.

Oczekiwany rezultat
Wejście:
12
Wyjście:
wstep
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Wczytaj wiek przez int(input()). Sam input zwracałby tekst.

Krok 2 — pokaż podpowiedź

Próg „co najmniej 12” obejmuje 12, więc wybierz >=, a nie >.

Krok 3 — pokaż podpowiedź

Zapisz if z dwukropkiem i wciętym print. Drugi komunikat umieść w else, również z dwukropkiem.

Krok 4 — pokaż podpowiedź

Uruchom dla 11, 12 i 13. Tylko 11 powinno dostać za mlody.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

Ćwiczenie z pomocą · samodzielna praca

Warunek może porównywać tekst.

Wczytaj jeden wiersz tekstu. Jeżeli jest dokładnie równy kot, wypisz trafione. Dla każdego innego tekstu wypisz sprobuj. Wielkość liter ma znaczenie, więc Kot nie jest kot. To zabawa w zgadywanie, nie bezpieczny system logowania.

Oczekiwany rezultat
Wejście:
kot
Wyjście:
trafione
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Tym razem nie używaj int(): porównujesz tekst z tekstem.

Krok 2 — pokaż podpowiedź

Do porównania użyj ==. Tekst kot zapisz w cudzysłowach.

Krok 3 — pokaż podpowiedź

Dwa możliwe wyniki wystarczą: if i else. Elif nie jest tu potrzebne.

Krok 4 — pokaż podpowiedź

Sprawdź kot, Kot oraz pies. Tylko pierwszy tekst pasuje.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

Ćwiczenie z pomocą · samodzielna praca

Trzy wyjścia: co założyć?

Wczytaj temperaturę jako jedną liczbę całkowitą od -30 do 40. Wypisz kurtka dla temperatur poniżej 10, bluza dla 10–19 włącznie i koszulka dla 20–40 włącznie. Zakładamy poprawne dane.

Oczekiwany rezultat
Wejście:
10
Wyjście:
bluza
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Zacznij od najniższej granicy: temperatura < 10.

Krok 2 — pokaż podpowiedź

Jeśli pierwszy warunek nie pasował, wiadomo już, że temperatura wynosi co najmniej 10. W elif wystarczy sprawdzić < 20.

Krok 3 — pokaż podpowiedź

Else obejmie to, co zostało. Pamiętaj o wspólnej kolumnie if/elif/else i wcięciach pod każdym.

Krok 4 — pokaż podpowiedź

Sprawdź 9, 10, 19 i 20. Wyniki: kurtka, bluza, bluza, koszulka.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

Najczęstsze pomyłki da się szybko znaleźć.

Brak : to zwykle SyntaxError. Brak wcięcia po nagłówku daje IndentationError. Złe wcięcie może jednak być poprawnym kodem, który robi coś innego, niż planujesz — dlatego patrz na kolumny i sprawdzaj różne wejścia.

Dwa osobne if to dwa niezależne pytania. Mogą wykonać się oba. Łańcuch if / elif / else wybiera najwyżej jedną gałąź. Nie zamieniaj elif na if tylko dlatego, że „wygląda podobnie”.

Podsumowanie

Zanim uznasz program za gotowy…

  1. Sprawdź dwukropki i wyrównanie if, elif, else.
  2. Przetestuj wynik poniżej progu, równy progowi i powyżej niego.
  3. Powiedz własnymi słowami, kiedy wykona się każda gałąź.
  4. W biurku czekają trudniejsze zadania, a nie kopie tych trzech ćwiczeń.

Po zalogowaniu zobaczysz dodatkowe lekcje i materiały oznaczone jako rozszerzenie. Podstawowe quizy i zadania pozostają dostępne w biurku.

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka