【问题标题】:Time of execution in Python 3.3Python 3.3 中的执行时间
【发布时间】:2015-09-07 00:32:08
【问题描述】:

看了这个topic是因为忘记了几个月前在网上找到的一个方法,不知道为什么今天找不到,很简单,效果很好但是...


所以我尝试了一种方法,但我认为它效果不佳,或者我 5 年前的电脑比现在的电脑好......

import time

debut=time.clock()

def t(n): 
    aaa=[]
    b=n-1
    c=0
    if n==0 or n==1:
        return 1
    else:
        while n != 1: 
            if n % 2==0: 
                n=n//2
                aaa.append(n)
            else: 
                n = n+b
                aaa.append(n)
    return [b,b+1]+aaa, len(aaa)+2

fin=time.clock()

print(t(100000),fin-debut)

对于 n=10.000.000,我可以在脑海中计算大约 5 秒,计算机总是返回 3.956927685067058e-06 ... 有人可以解释一下吗?


而我找到的方法,用了这个from time import perf_counter as pc

我不得不返回print(pc()-t)

如果有人能启发我,因为我真的不记得方法了。

提前谢谢你

【问题讨论】:

    标签: performance python-3.x


    【解决方案1】:

    查看 timeit 模块,https://docs.python.org/3.0/library/timeit.html

    你可以设置你的...

    time = Timer( "t(100000)", "from __main__ import t")
    print("time: ", timer.timeit(number=1000))
    

    【讨论】:

      【解决方案2】:

      您正在测量定义函数所需的时间。 这将测量函数的执行情况:

      import time
      
      def t(n): 
          aaa=[]
          b=n-1
          c=0
          if n==0 or n==1:
              return 1
          else:
              while n != 1: 
                  if n % 2==0: 
                      n=n//2
                      aaa.append(n)
                  else: 
                      n = n+b
                      aaa.append(n)
          return [b,b+1]+aaa, len(aaa)+2
      
      start = time.time()
      value = t(100000)
      end = time.time()
      
      duration = end - start
      print(value, duration)
      

      【讨论】:

      • 不,它没有。我发现的方法只是使用时间模块,需要说明..
      • 谢谢你,我将在 Euler 项目中创建另一个帐户,我在玩家告诉他们的解决方案的地方找到了这个方法,我刚刚解决了 5 个第一个问题,所以答案不难找到 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2014-03-04
      • 2018-03-10
      相关资源
      最近更新 更多