gpt4 book ai didi

python - Python 3.2 中的截断除法

转载 作者:行者123 更新时间:2023-11-28 17:53:27 24 4
gpt4 key购买 nike

  1. 在 Python 3.2 中,整数底除法 // 是否比浮点除法 / 更快?如果我知道我将只使用整数,我是否应该使用 // 而不是默认使用 /

  2. 如何在 Python 3.2 中获得整数截断行为?

    1/2 = 0

    -1/2 = 0

谢谢。

最佳答案

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

这让您非常接近您想要的中缀符号。

这个故事的寓意是......不要让你的 friend 在昏昏欲睡的时候编码。

关于python - Python 3.2 中的截断除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5469740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com