from math import (floor, ceil)
def trunc_div(a, b):
c = a / b
return floor(c) if c > 0 else ceil(c)
Проверьте это, чтобы убедиться, что это правильно.Уже поздно, и я занимаюсь математикой, пока сплю.
На самом деле, не делай этого.Когда я увидел, могу ли я создать подкласс int для усеченного деления (тоже не делаю этого (также, это не сработало)), мне пришло в голову, что int()
сам усечет реалы, в результате чего:
def trunc_div(a, b):
return int(a / b)
Это довольно глупая оболочка.
Так что, просто используйте деление с плавающей запятой и обрежьте его с помощью int()
:
>>> int(1 / 2)
0
>>> int(-1 / 2)
0
Это приблизит вас к инфиксуобозначение, которое вы хотели.
Мораль этой истории ... не позволяйте своим друзьям писать код, пока сонливы.