
20/4 == 22//4
5/2 == 5//2
18/3 == 18//3
Co tu równe, a co nierówne?
20/4 == 22//4
Powyższe wyrażenie jest prawdziwe. Ale dlaczego? Zacznijmy od różnicy między dzieleniem zmiennoprzecinkowym, a dzieleniem z resztą.
Dzielenie zmiennoprzecinkowe
Pomimo hucznego określenia, to właśnie to dzielenie, które wykonujemy na co dzień najczęściej. Jeśli podzielimy 15 zł po połowie, to dostaniemy 7,5 zł. Jeśli podzielimy 1 kg mąki na 4 części to dostaniemy 0,25 kg w każdej. Generalnie chcemy, żeby nasze części były dokładnie równe, nie martwimy się o to, czy są całkowite.
Dzielenie z resztą
Gdy pakujemy się na wycieczkę i kupimy 5 jabłek, to rozdzielając na 2 osoby każda powinna dostać 2,5 jabłka. Ale na wycieczce niewygodnie jest nam z przekrojonym jabłkiem, więc lepiej podzielić tutaj z resztą. Każda osoba dostanie po 2 całe jabłka. To jedno pozostałe, jest naszą resztą ('modulo').
Jak ją zadysponujemy to już osobna historia, ale w wielu przypadkach chcemy zrobić z nią coś innego niż z rozdzielonymi częściami.
Wracając do naszych pythonowych rozważań:
15/2
jest dzieleniem zmiennoprzecinkowym, czyli z 15 zł dostajemy 2 razy 7,5 zł.
A przy dzieleniu z resztą:
5 // 2
Tutaj dostaniemy 2. Żeby uzyskać naszą resztę, używamy innego operatora i wykonujemy dzielenie modulo:
5 % 2
Dostając wartość 1.
20/4 == 22//4
20/4 # 5.0 - typ float
22//4 # 5 - typ int
Przy porównywaniu danych, następuje automatyczne rzutowanie typów, co powoduje, że wartości są sobie równe.
5/2 == 5//2
False
5/2 == 5//2
5/2 # 2.5 - typ float
5//2 # 2 - typ int
Wartości nie są sobie równe.
18/3 == 18//3
True
18/3 == 18//3
18/3 # 6.0 - typ float
18//3 # 6 - typ int
Wartości równe. Całość jest prawdziwa.
Jeśli zagadki Ci się podobają, ale nie chcesz przegapić kolejnych - śledź bloga na Facebooku, Instagramie lub w RSSach. Kolejne zagadki co wtorek!
0 Komentarze