出于好奇,我运行了一个逐个数字的简单算法,以找到相同值的平方根20次(叹气,我知道...)
对于所有20次运行,我得到的结果都是相同的,但是在所有执行过程中,运行时间都不同。这是预期的观察结果还是我对计时器的编码不好?
def tester(orange):
import timeit
x = orange
step = 1
guess = 0
epsilon = 0.0000000001
start = timeit.default_timer()
while guess ** 2 < x:
guess += step
if guess ** 2 > x:
guess -= step
if step > epsilon:
step = step / 10
else:
break
print("The square root of", x, "is", guess)
stop = timeit.default_timer()
print('Time: ', stop - start)
number = int(input("Enter the number of times that you want to run this test: "))
answer = float(input("Enter a number to find the square root for: "))
while number > 0:
tester(answer)
number -= 1
答案 0 :(得分:0)
timeit.default_timer()
衡量挂钟时间而不是CPU时间。因此,计算机上运行的其他进程(包括后台进程)将影响其时间。如果您将代码运行了100次并打开chrome并在运行时对其进行了处理,那么您可以看到它的作用。您会看到时间略有增加,因为chrome正在使用您的CPU时间的一小部分。
要更准确地估算您的代码,请使用timeit.timeit
。
更多here