SAMOUCZEK JĘZYKA PYTHON | ROZDZIAŁY |
Rozdział 4: Struktury danych. 4: Mechanizmy programowania funkcjonalnego - 5: Rozszerzenie składni listy - 6: Instrukcje del 7: Listy niemutowalne i sekwencyjne - 8: Słownik - 9: Jeszcze trochę o warunkach 10: Porównanie sekwencji i innych typów Lekcja 9. Jeszcze trochę o warunkach.Warunki używane w instrukcjach while i if mogą zawierać inne operatory, niż poznane dotychczas operatory porównania. Operatory porównania in oraz not in sprawdzają czy jakaś wartość pojawia się lub nie w sekwencji. Operatory is i is not porównują, czy dwa obiekty są w rzeczywistości tymi samymi obiektami: ma to znaczenie tylko dla przypadków obiektów mutowalnych, takich jak listy. Wszystkie operatory porównania mają taki sam priorytet, który jest niższy niż priorytet wszystkich operatorów numerycznych. Porównania mogą być sklejane w jeden łańcuch, np. a < b == c sprawdza czy a jest mniejsze niż b i ponadto czy b jest równe c. Porównania mogą być łączone operatorami logicznymi: and i or, a wynik porównania (lub każdego innego wyrażenia logicznego) może być zanegowany poprzez not. Wszystkie, wyżej wymienione operatory mają niższy priorytet od priorytetu operatorów porównania, aczkolwiek not ma wyższy priorytet od or. Tak więc A and not B or C są odpowiednikiem (A and (not B) )or C. Oczywiście, zawsze można użyć nawiasów, aby wyrazić pożądaną kolejność. Operatory logiczne and i or są tzw. operatorami skrótu. Ich argumenty ewaluowane są od lewej do prawej, a ewaluacja jest przerywane w momencie określenia ostatecznego wyniku. Np.: jeżeli A i C są prawdziwe ale B jest fałszywe, A and B and C nie ewaluuje wyrażenia C. W ogólności, wartość jaką zwraca operator skrótu jest ostatnim ewaluowanym argumentem, gdy używana jest jako wartość ogólna a nie logiczna Możliwe jest przypisanie wyniku porównania lub innego wyrażenia logicznego do zmiennej. Na przykład:
Zauważcie, że w Pythonie, odmiennie niż w C, przypisanie nie może pojawić się w środku wyrażenia. Programiści C mogą się na to zżymać, ale w ten sposób można uniknąć powszechnego problemu spotykanego w C: pisząc = w wyrażeniu, kiedy zamierzało się napisać ==. |
|