Python • kurs podstawowy • lekcja 09
Porównania i logika
Do rundy przechodzą osoby z co najmniej 10 punktami i biletem.
Twój cel: Zbudujesz warunek logiczny z porównań i sprawdzisz jego granice.Porównywanie liczb i wartości bool.
Od potrzeby do kodu
Każdy wymóg zapisujemy osobno, a potem łączymy. == porównuje wartości, != oznacza nierówność, < i > ostre granice, a <= i >= dopuszczają równość.
W tym materiale łączymy wartości bool. and daje True, gdy oba warunki są prawdziwe; or gdy przynajmniej jeden jest prawdziwy, także oba naraz. not odwraca wartość logiczną. Nawiasy pomagają czytać dłuższy warunek.
Przypisanie = zmienia powiązanie nazwy, a porównanie == daje odpowiedź. Zakres 10–20 z końcami można zapisać 10 <= points <= 20. Zawsze sprawdzaj wartości na granicy i tuż obok niej. None sprawdzamy przez is None: dzięki temu nie mylimy braku wyniku z zerem.
Przewidź przed uruchomieniem
points = 10
has_ticket = False
print(points >= 10)
print(points >= 10 and has_ticket)
print(points >= 10 or has_ticket)
print(not has_ticket)
Porównaj wynik i prześledź mechanizm
True, False, True, True. Próg punktów jest spełniony, lecz biletu nie ma. and wymaga obu warunków; or dopuszcza jeden prawdziwy. not False daje True.
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
True
False
True
True
| A | B | A and B | A or B |
|---|---|---|---|
| False | False | False | False |
| False | True | False | True |
| True | False | False | True |
| True | True | True | True |
Zmień działający program
Zbuduj warunek dopuszczający wyniki od 10 do 20 włącznie. Sprawdź wynik 20 i 21.
Pierwsza wskazówka
Zachowaj działający punkt wyjścia. Zlokalizuj konstrukcję wskazaną w poleceniu i zmień tylko ten etap. Przed uruchomieniem zapisz oczekiwany efekt.
Porównaj swoją modyfikację
points = 20
print(10 <= points <= 20)
points = 21
print(10 <= points <= 20)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
True
False
Znajdź przyczynę problemu
Celowo błędny przykład diagnostyczny. Najpierw postaw hipotezę. Nie kopiuj tej wersji jako poprawnego rozwiązania.
Zamierzone działanie: Sprawdź przedział od 10 do 20 włącznie.
points = 100
print(points >= 10 or points <= 20)
Trop do diagnozy
Porównaj zamierzony rezultat z typami, nazwami i kolejnością instrukcji. Wskaż pierwsze miejsce, w którym zachowanie odbiega od celu.
Zastosuj w nowej sytuacji
Wskazówka do rozpoczęcia
Warunek opisuje regułę. Testuj końce przedziału i sytuacje, gdy spełniona jest tylko część wymagań.
Zacznij od przygotowania danych. Pierwsza instrukcja przykładowego rozwiązania:
has_card = True
Rozwiązanie do samodzielnej kontroli
has_card = True
has_debt = False
print(has_card and not has_debt)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
True
Porównaj dane wejściowe, wynik i powód użycia konstrukcji. Inna wersja kodu jest poprawna, jeśli realizuje te same wymagania.
Co zabierasz do kolejnego programu?
Warunek opisuje regułę. Testuj końce przedziału i sytuacje, gdy spełniona jest tylko część wymagań.
Bez zaglądania do przykładu wyjaśnij własnymi słowami, jak główna konstrukcja prowadzi od danych do wyniku. Potem sprawdź wyjaśnienie, uruchamiając swój program.