Есть ли ошибка в целочисленном делении (%) Python? - PullRequest
0 голосов
/ 07 января 2020

Python 3.7.4 (теги / v3.7.4: e09359112e, 8 июля 2019, 20:34:20) [MS C v.1916 64 бит (AMD64)] на win32 Введите «help», « авторские права "," кредиты "или" лицензия "для получения дополнительной информации.

7% 5 2
8% 5 3
6% 5 1

Ответы [ 3 ]

1 голос
/ 07 января 2020

Деление /

С целыми числами в качестве ввода, деление даст вам целочисленный результат ( Python2 + )

>>> 7/5
1
>>> 8/5
1
>>> 10/5
2

С при как минимум одно нецелое число в качестве входных данных ( Python2 + ), вы получите нецелый результат.

>>> 10/1.5
6.666666666666667
>>> 10/4.0
2.5

Python3: целочисленное деление равно //

>>> 10/4 # Python 3
2.5
>>> 10//4 # Python 3 integer division
2

по модулю% (= остаток)

По модулю остаток от целочисленного деления

>>> 7%5 # = What is the remainder of the division of 7 by 5
2
>>> 8%5
3
>>> 10%5
0
0 голосов
/ 07 января 2020

Вы используете операцию по модулю 7%5 = 2 ее правильно. Для целочисленного деления вы должны использовать "//", например: 7//5. Если вы хотите получить результат с плавающей точкой, вы можете использовать 7/5.

0 голосов
/ 07 января 2020

Это не деление того, что вы делаете, это по модулю (это дает вам остаток). Вы должны использовать / вместо%

...