Ma to związek z wersją Pythona, której używasz. Zasadniczo przyjmuje zachowanie C: jeśli podzielisz dwie liczby całkowite, wyniki zostaną zaokrąglone w dół do liczby całkowitej. Pamiętaj również, że Python wykonuje operacje od lewej do prawej, co odgrywa rolę podczas pisania na maszynie.
Przykład: Ponieważ jest to pytanie, które zawsze pojawia się w mojej głowie, gdy wykonuję operacje arytmetyczne (czy powinienem przekonwertować na liczbę zmiennoprzecinkową i jaką liczbę), przedstawiono przykład z tego aspektu:
>>> a = 1/2/3/4/5/4/3
>>> a
0
Kiedy dzielimy liczby całkowite, nie jest zaskakujące, że jest zaokrąglany od dołu.
>>> a = 1/2/3/4/5/4/float(3)
>>> a
0.0
Jeśli wpiszemy ostatnią liczbę całkowitą do liczby zmiennoprzecinkowej, nadal otrzymamy zero, ponieważ do czasu, gdy nasza liczba zostanie podzielona przez liczbę zmiennoprzecinkową, już wynosi 0 z powodu dzielenia liczb całkowitych.
>>> a = 1/2/3/float(4)/5/4/3
>>> a
0.0
Taki sam scenariusz jak powyżej, ale przesunięcie typu float nieco bliżej lewej strony.
>>> a = float(1)/2/3/4/5/4/3
>>> a
0.0006944444444444445
Na koniec, kiedy typujemy pierwszą liczbę całkowitą do float, wynik jest pożądany, ponieważ zaczynając od pierwszego dzielenia, czyli od lewej, używamy liczb zmiennoprzecinkowych.
Dodatek 1: Jeśli próbujesz odpowiedzieć na to pytanie, aby poprawić ocenę arytmetyczną, powinieneś to sprawdzić
Dodatek 2: Uważaj na następujący scenariusz:
>>> a = float(1/2/3/4/5/4/3)
>>> a
0.0