【发布时间】:2013-07-14 20:10:34
【问题描述】:
假设我有一个函数,我想分析运行时的确切步数:
def function(L):
print ("Hello")
i = 0 # 1 step
while i < len(L): # 3 steps
print (L[i] + 1)
i += 2 # 2 steps
print ("Goodbye")
我想知道打印语句是否算作一个步骤?
【问题讨论】:
-
是的,
print会算作一个步骤。不过,我很好奇:为什么您需要确切的步数?您是否正在尝试分析函数的复杂性?通常,您希望按输入的数量级执行此操作。所以你想弄清楚,例如:如果你把 L 的大小加倍,函数的执行时间会增加多少倍? -
谢谢,这只是一个家庭作业
-
事实上,
print(和任何其他原子语句)实际上可能值得许多个步骤,具体取决于您如何解释步骤(例如,CPU 周期等) .此外,并不是说您的第二个print至少需要三个步骤:列表访问、添加和打印。准确地说,可能值得看看生成的字节码。
标签: python performance