Jestem mylić o następującym całkowitej matematyki w Pythonie:Integer podział w Pythonie
-7/3 = -3
od (-3)*3 = -9 < -7
. Rozumiem.
7/-3 = -3
Nie rozumiem, jak to jest zdefiniowane. (-3)*(-3) = 9 > 7
. Moim zdaniem powinno być -2, ponieważ (-3)*(-2) = 6 < 7
.
Jak to działa?
Python generalnie podąża za zasadą najmniejszego zdziwienia. Po prostu zaokrągla w dół dla podziału całkowitoliczbowego. – Chriszuma
Oto uzasadnienie, prosto z samego bdfl: http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html –
Dla osób przybywających tutaj w celu pomocy w dzieleniu całkowitym: In Python 3, podział całkowity jest wykonywany za pomocą '//', np '-7 // 3 = -3', ale' -7/3 = -2.33..'. – poke