Wartości logiczne
Kodowanie wartości logicznych
Wartości logiczne True, False kodowane są tak samo, jak liczby 1 (True) oraz 0 (False). Gdy na zmiennych False i True wykonuje się zwykłe operacje matematyczne, to okazuje się, ze kryją się za nimi liczy całkowite 1 i 0.
print(7*True+True) print(False**2+True**3) import math print(math.sin(True)) print(math.sin(1)) |
>>> 8 3 0.8414709848078965 0.8414709848078965 |
Podobnie jak na liczbach działają dla nich relacje ‘<‘, ‘<=’, ‘>’ i ‘>=’ oraz ‘==’.
print(True==False+1) print(True<False) print(True>False) print(True>=False+2) |
>>> True False True False |
W Pythonie wartości logiczne są zatem podtypem typu liczbowego.
Działania na wartościach logicznych
W programach często trzeba używać negacji, koniunkcji lub alternatywy wartości logicznych. Służą do tego słowa not, and i or. Są to jednocześnie operatory logiczne, co można sprawdzić używając następującego kodu:
print(True and True) print(True and False) print(True or False) print(False or False) print(not True) print(not False) |
>>> True False True False False True |
W przypadku złożonych zdań logicznych trzeba umiejętnie stawiać nawiasy, bo wynik czasem od nich zależy.
print(False and False or True) print((False and False) or True) print(False and (False or True)) |
>>> True True False |
W działaniach na wartościach logicznych obowiązują trzy zasady:
1. Priorytet mają działania objęte nawiasem i tam najpierw wyliczany jest wynik.
2. Działanie not zamienia wartość logiczną stojącego przed nią zdania w pierwszej kolejności.
3. Działania and i or maja ten sam priorytet. W częściach kodu bez nawiasów wyznaczanie wyniku następuje od lewej do prawej.
W sytuacjach, które najczęściej są wynikiem błędnego kodu, Python potrafi podać jakieś wartości bez informacji o błędzie:
print(17 and 0) print(False or 17) print(not 7) print(True and (not 0)) |
>>> 0 17 False True |
Należy mieć to na uwadze, gdyż powoduje to czasem błędne obliczenia bez komunikatów o błędzie.
Funkcje logiczne
Funkcjami logicznymi są wszystkie funkcje których wynikiem jest prawda (True) albo fałsz (False).
Jedną z ciekawszych funkcji logicznych jest bool(). Stosujemy ją wtedy, gdy jakieś działania i operacje nie są możliwe dla 0, pustego tekstu, ciągu bez elementów itp. Funkcja ta przyjmuje wtedy wartość False. W każdym innym przypadku ma wartość True.
print(bool(1)) print(bool(0)) print(bool(-2.6)) print(bool(‘ala’)) print(bool(”)) print(bool(‘ ‘)) |
>>> True False True True False True |