Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.2中的截断除法_Python_Division - Fatal编程技术网

Python 3.2中的截断除法

Python 3.2中的截断除法,python,division,Python,Division,在Python 3.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) 测试它以确保它是正确的。很晚了,我困的时候在做数学 事实上,不要那样做。在查看是否可以

在Python 3.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()截断它即可:

    这使您非常接近所需的中缀符号


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

    关于问题1。-真的不难用。谢谢,我刚开始用Python,不知道有这样的函数。似乎/比/快了一点点。对于第一个问题,请参阅问题的第一个启发性答案,了解为什么这不太重要。具体来说:
    本机加法和减法操作码的速度是无关的。它位于噪声层,与字节码评估相比完全相形见绌。这是指一个或两个大约数千条的本机指令。
    谢谢,我知道这样做会奏效,只是想知道Python中是否有这样的本机语言功能,以便我可以使用中缀运算符而不是函数。
    >>> int(1 / 2)
    0
    >>> int(-1 / 2)
    0