Ответ 1
Вы можете использовать оператор //
, он выполняет целочисленное деление, но это не совсем то, что вы ожидаете от C:
Цитата из здесь:
Оператор//выполняет причудливый вид целочисленного деления. Когда результат положительный, вы можете думать о это как усечение (не округление) до 0 десятичных знаков, но будьте осторожны с что.
Когда целые делящиеся отрицательные числа, оператор//обходит "вверх", к ближайшему целому. Математически говоря, его округление "вниз" с тех пор -6 меньше -5, но это может быть вы, если бы ожидали усечь до -5.
Например, -11 // 2
в Python возвращает -6
, где -11 / 2
в C возвращает -5
.
Я бы посоветовал писать и тщательно тестировать индивидуальную функцию разделения чисел, которая "эмулирует" поведение C.
В приведенной выше ссылке также есть ссылка на PEP 238, в которой есть интересная справочная информация о делении и изменениях от Python 2 до 3 Есть несколько предложений о том, что использовать для целочисленного деления, например divmod(x, y)[0]
и int(x/y)
для положительных чисел, возможно, вы найдете там более полезные вещи.