Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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 与时间一起工作。处理时间()_Python_Python 3.x_Attributeerror - Fatal编程技术网

Python 与时间一起工作。处理时间()

Python 与时间一起工作。处理时间(),python,python-3.x,attributeerror,Python,Python 3.x,Attributeerror,我试图计算排序函数需要多长时间,但我很难让time.process\u time()正常工作 我当前的设置是: start = time.process_time() insertionsort(n) end = time.process_time() time = start-end 当我运行此操作时,出现以下错误: “float”对象没有“process\u time”属性 如何解决此问题?我想使用time.process\u time()问题在于代码中未显示的部分。我假设您在开始时导入

我试图计算排序函数需要多长时间,但我很难让
time.process\u time()
正常工作

我当前的设置是:

start = time.process_time()
insertionsort(n)
end = time.process_time()

time = start-end
当我运行此操作时,出现以下错误:

“float”对象没有“process\u time”属性


如何解决此问题?我想使用
time.process\u time()

问题在于代码中未显示的部分。我假设您在开始时导入了
time
模块:

import time
它创建一个名称
time
,该名称引用
time
模块

但是,稍后您将创建一个名为
time
的变量来存储时差。此时,名称
time
引用的是差异,而不是模块。因此,当您尝试使用
time.process\u time()
时,随后会出现错误

这个简单的片段说明了问题:

>>> import time
>>> time = -(time.process_time() - time.process_time())
>>> time.process_time()
AttributeError: 'float' object has no attribute 'process_time'
如果坚持使用
time.process\u time()
最好的方法是重命名存储时差的变量:

measured_execution_time_insertionsort = end - start
但您也可以直接从
time
模块导入
process\u time
功能:

from time import process_time

start = process_time()
insertionsort(n)
end = process_time()

time = end - start

这两种方法都避免了名称冲突。但是,如果您想测量执行时间,我建议您使用该模块,它比
时间
模块更适合此类任务。

这就是问题所在
time=start-end
不要使用与标准库相同的名称命名变量。要获得肯定的时间答案,您需要将其设置为
time=end-start
,而不是
time=start-end
@ThomasS。是的,我最初是从问题中抄来的。然而,有一个积极的结果似乎显然是正确的,所以我更新了答案。谢谢你指出这一点。