簡體   English   中英

我如何分析帶有 if 語句的 for 循環的 function 的運行時間?

[英]How do i analyze the running time of a function with a for loop with an if statement?

例如,讓 function 包含:

def myfunc():
    total = 0
    for i in range(0, n):
       total+=i
       if total >= n:
         return total
    return 0

運行時間是多少?

我似乎想不出一種方法來分析這個問題。

您可以定義自己的裝飾器,如下所示:

def timed_function(f):
    def wrapper(*args, **kwargs):
        import time
        start_time = time.time()
        result = f(*args, **kwargs)
        elapsed = time.time() - start_time
        print("{} took {} seconds to run.".format(f, elapsed))
        return result
    return wrapper


@timed_function
def adding():
    a = 0
    for i in range(10000000):
        a = a + 1
    return a

adding()

<函數添加到 0x0000023711A0EE50> 運行耗時 0.49866580963134766 秒。

編輯:也許你只需要基礎知識? 然后導入時間模塊,在運行你的代碼之前和之后進行測量,然后打印結果。 例如:

import time

start_time = time.time()

#your code goes here

end_time = time.time()
time_elapsed = end_time - start_time
print("Took", time_elapsed)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM