Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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 2.7中的time.sleep有问题_Python_Python 2.7_Time_Sleep - Fatal编程技术网

python 2.7中的time.sleep有问题

python 2.7中的time.sleep有问题,python,python-2.7,time,sleep,Python,Python 2.7,Time,Sleep,我正在运行这个非常简单的函数进行测试: import time def printnum(ang): if ang > 0: print(ang) time.sleep(3 * abs(ang) / 360) print("done") if ang < 0: print(ang) time.sleep(3 * abs(ang) / 360) print("done")

我正在运行这个非常简单的函数进行测试:

import time
def printnum(ang):
    if ang > 0:
        print(ang)
        time.sleep(3 * abs(ang) / 360)
        print("done")
    if ang < 0:
        print(ang)
        time.sleep(3 * abs(ang) / 360)
        print("done")
导入时间
def printnum(ang):
如果ang>0:
打印(ang)
睡眠时间(3*abs(ang)/360)
打印(“完成”)
如果ang<0:
打印(ang)
睡眠时间(3*abs(ang)/360)
打印(“完成”)
当我在Python3上运行它时,它工作得很好 然而,在Python2上,我遇到了一个问题,
printnum
不能处理大范围的数字,它不能执行延迟。。。事实上,到目前为止,它只在我的测试中使用了
printnum(180)


对于一个如此简单的代码来说,这很奇怪。我在两台电脑上测试过。这种事发生在你身上吗?有什么原因吗?让它工作的建议?(除了转移到Python3(这对我正在使用的硬件来说很难)

在Python2上,
/
在传递
int
操作数时默认截断整数除法,而不是“真除法”(产生
float
结果)。您可以通过以下两种方式之一进行修复:

  • 从uuuuu future\uuuuu导入分割
    添加到文件顶部,以使用Python 3分割规则(
    /
    表示始终使用真正的分割,如果您真正指的是楼层分割,则使用
    /
  • 3
    360
    更改为
    float
    文字,以便以
    float
    方式执行数学运算,例如
    time.sleep(3.*abs(ang)/360)
    time.sleep(3*abs(ang)/360)。

  • 在Python2上,
    /
    在传递
    int
    操作数时默认截断整数除法,而不是“真除法”(产生
    float
    结果)。您可以通过以下两种方式之一进行修复:

  • 从uuuuu future\uuuuu导入分割
    添加到文件顶部,以使用Python 3分割规则(
    /
    表示始终使用真正的分割,如果您真正指的是楼层分割,则使用
    /
  • 3
    360
    更改为
    float
    文字,以便以
    float
    方式执行数学运算,例如
    time.sleep(3.*abs(ang)/360)
    time.sleep(3*abs(ang)/360)。

  • 由于
    ang
    可能是一个足够小的整数,因此
    3*abs(ang)/360
    是一个整数除以另一个整数的表达式

    Python 2除法默认为整数除法,因此结果可能是0

    修正:


    由于
    ang
    可能是一个足够小的整数,因此
    3*abs(ang)/360
    是一个整数除以另一个整数的表达式

    Python 2除法默认为整数除法,因此结果可能是0

    修正:


    整数除法使
    3*abs(ang)/360
    0。试试
    3.0*abs(ang)/360
    python2
    /
    在两个
    int
    对象之间进行整数除法。为了获得真正的除法行为,
    from\uuuuu future\uuuu导入除法
    integer除法将
    3*abs(ang)/360
    0。试试
    3.0*abs(ang)/360
    python2
    /
    在两个
    int
    对象之间进行整数除法。要获得真正的分区行为,
    from\uuuuuu future\uuuu导入分区
    3.0 * abs(ang) / 360