Jak mogę znaleźć pozostałą część liczby z dzielenia w Pythonie?
Na przykład:
jeśli liczba to 26, a liczba podzielona to 7, to reszta z dzielenia to 5.
(ponieważ 7 + 7 + 7 = 21 i 26-21 = 5).
python
integer-division
Pion
źródło
źródło
Odpowiedzi:
szukasz operatora modulo:
na przykład:
Oczywiście, może chcieli, żebyś sam to wdrożył, co też nie byłoby zbyt trudne.
źródło
-10 % 3 == 2
. Jednaka/b*b + a%b == a
nadal jest prawdą, ponieważ python zawsze zaokrągla w kierunku -Infinity, w przeciwieństwie do niektórych innych języków, które zaokrągla w kierunku 0, ale zwróci -1.%
wykonuje prawdziwy moduł, który zwraca wartości z zakresu[0, divisor)
i dobrze łączy się w pary z dzieleniem zmiennoprzecinkowym (w kierunku ujemnej nieskończoności). Języki C używają%
operatora do operacji na resztach, które zwracają wartości z zakresu(-divisor, divisor)
i dobrze łączą się ze standardowym dzieleniem (w kierunku zera).Pozostałą część podziału można znaleźć za pomocą operatora
%
:W przypadku, gdy potrzebujesz zarówno ilorazu, jak i modulo, jest wbudowana
divmod
funkcja:źródło
26% 7 (otrzymasz resztę)
26/7 (otrzymasz dzielnik może być wartością zmiennoprzecinkową)
26 // 7 (otrzymasz dzielnik tylko jako liczbę całkowitą))
źródło
Jeśli chcesz uzyskać iloraz i resztę w jednej linii kodu (bardziej ogólny przypadek użycia), użyj:
źródło
Jeśli chcesz uniknąć modulo, możesz również użyć kombinacji czterech podstawowych operacji :)
źródło
W Pythonie 3.7 jest nowa
math.remainder()
funkcja:Wynik:
Uwaga, jak wyżej, to nie to samo, co
%
.Cytując dokumentację :
W numerze 29962 opisano uzasadnienie utworzenia nowej funkcji.
źródło
Podczas dzielenia używaj% zamiast /. To zwróci ci resztę. Więc w twoim przypadku
źródło
Modulo byłoby poprawną odpowiedzią, ale jeśli robisz to ręcznie, powinno to działać.
źródło
Możemy to rozwiązać za pomocą operatora modułu (%)
26% 7 = 5;
ale 26/7 = 3, ponieważ da to iloraz, ale operator% da resztę.
źródło
Możesz znaleźć resztę za pomocą operatora modulo Przykład
Wydrukuje 4
źródło
Jeśli chcesz resztę swojego problemu z dzieleniem, po prostu użyj rzeczywistych reguł reszty, tak jak w matematyce. To prawda, że nie da ci to wyniku dziesiętnego.
Jeśli chcesz, aby ten w formacie kalkulatora, wystarczy podstawić
valone = 8
zvalone = int(input("Value One"))
. Zrób to samovaltwo = 3
, ale oczywiście z różnymi wartościami.źródło
valone/valtwo
na int. w przeciwnym razie da to liczbę zmiennoprzecinkową.możesz zdefiniować funkcję i wywołać ją resztą z 2 wartościami, takimi jak rem (liczba1, liczba2), która zwraca liczbę1% liczba2, a następnie utworzyć chwilę i ustawić ją na wartość true, a następnie wydrukować dwa wejścia dla Twojej funkcji o numerach 1 i 2 i wypisać (rem (liczba1, liczba2)
źródło