8

and, or, not – łączenie kilku warunków w jeden

Materiały tej lekcji są na razie tylko do czytania na stronie. Kod przepisz albo skopiuj do swojego edytora.

Czego się nauczysz

Jeśli dwie rzeczy muszą być spełnione naraz, nie musisz zagnieżdżać dwóch bloków if. Wystarczy połączyć warunki jednym słowem. Na tej lekcji poznasz trzy takie słowa: and, or i not.

Po tej lekcji:

Trzy słowa zamiast zagnieżdżania

wiek = 20
ma_bilet = True
if wiek >= 18 and ma_bilet:
    print("Wejscie OK")
W Pythonie zapisujesz je słowami. Znaki &&, || i ! to inne języki – w Pythonie dadzą błąd SyntaxError. Wrócą do ciebie dopiero w C#.

Kiedy warunek złożony jest prawdziwy

Zapamiętaj skrótowo: and jest wymagające – wystarczy jeden fałszywy warunek, żeby całość była fałszywa. or jest pobłażliwe – wystarczy jeden prawdziwy, żeby całość była prawdziwa.

Można łączyć więcej niż dwa warunki. Przy mieszaniu and z or w jednej linii koniecznie wstawiaj nawiasy – inaczej trudno przewidzieć wynik.

Sprawdzanie zakresu – zapis skrócony

Warunek „liczba z przedziału od 1 do 6” zwykle zapisuje się dwoma porównaniami połączonymi and. W Pythonie można krócej – tak jak w matematyce.

x = 4
if x >= 1 and x <= 6:     # wersja pełna
    print("W zakresie")
if 1 <= x <= 6:           # wersja skrócona – znaczy to samo
    print("W zakresie")
if not (1 <= x <= 6):     # zaprzeczenie
    print("Poza zakresem")

Krótszy zapis jest czytelniejszy i trudniej się w nim pomylić. Sprawdzanie, czy liczba mieści się w zakresie, pojawia się w każdym zadaniu egzaminacyjnym.

W C# ten skrót nie działa – tam trzeba wrócić do dwóch warunków połączonych &&.

Warunek sam w sobie ma wartość

Zapis 5 > 3 to nie tylko element instrukcji if. To wyrażenie, które ma wartość – taką samą jak zmienna typu bool z lekcji 3.

print(5 > 3)     # True
print(5 == 3)    # False
wynik = 10 > 7
print(wynik)     # True

Dzięki temu if ma_bilet: działa bez żadnego porównania – w zmiennej już siedzi True albo False. Zapis if ma_bilet == True: też zadziała, ale jest zbędny.

Pamiętaj o wielkości liter: True i False, nie true i false.

W kodzie z lekcji: krótkie spięcie

Demo pokazuje jeszcze jedną rzecz: Python nie sprawdza drugiego warunku, jeśli pierwszy już przesądził o wyniku. Przy False and ... druga część w ogóle się nie wykona, tak samo przy True or .... Uruchom demo i zobacz, że funkcja sprawdz() nie zostaje wywołana.

Spróbuj sam

Zadania z lekcji:

  1. Utwórz zmienną liczba. Wypisz TAK, jeśli jest jednocześnie trzycyfrowa, parzysta i podzielna przez 5. W przeciwnym razie wypisz NIE.
  2. Utwórz zmienną dzien z liczbą od 1 do 7. Wypisz, czy to weekend, czy dzień roboczy. Skorzystaj z operatora or.
  3. Utwórz zmienną ocena. Sprawdź zapisem skróconym, czy mieści się w zakresie od 1 do 6. Jeśli nie – wypisz komunikat o błędnej wartości.
  4. Wypisz przez print wynik pięciu dowolnych porównań, żeby zobaczyć wartości True i False na własne oczy.

Sprawdź się

Na następnej lekcji: pętle. Zamiast pisać to samo polecenie dziesięć razy, napiszesz je raz i każesz Pythonowi powtórzyć.

Notatki

PDF
Zadania utrwalające Karta pracy do tej lekcji: zadania sprawdzające i domowe do samodzielnego zrobienia w swoim edytorze · 4 strony.
Zadania utrwalające – and, or, not – łączenie kilku warunków w jeden
Strona 1 z 4 Strona 2 z 4 Strona 3 z 4 Strona 4 z 4

Prezentacja

Slajd 1 z 7
1 / 7

Kod

Otwórz kod, zmieniaj go i uruchamiaj na stronie – np. usuń # z linii oznaczonej jako błąd i zobacz, co się stanie. „Przywróć” wraca do wersji z lekcji.

PY
demo_08_operatory-logiczne.py Kod z lekcji – otwórz, zmieniaj i uruchamiaj; wynik zobaczysz obok kodu.
demo_08_operatory-logiczne.py
Wynik programu
Kliknij „Uruchom”, żeby zobaczyć tutaj wynik programu.