Pythonの各関数で費やされる時間を取得する関数を作成するにはどうすればよいですか?
プログラムの実行の時間を測定するには、time.clock()またはtime.time()関数を使用します。 Pythonのドキュメントには、この関数はベンチマークの目的で使用する必要があると記載されています。これらの関数呼び出しをベンチマークする関数の周囲に配置し、それらを使用して関数で費やされた時間を取得できます。
import time t0= time.clock() print("Hello") t1 = time.clock() - t0 print("Time elapsed: ", t1 - t0) # CPU seconds elapsed (floating point)
これにより、出力が得られます-
Time elapsed: 0.0009403145040156798
timeitモジュールを使用して、コードスニペットの実行時間の適切な統計分析を取得することもできます。スニペットを複数回実行してから、最短の実行にかかった時間を示します。次のように使用できます:
def f(x): return x * x import timeit timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=100000)
これにより、出力が得られます-
[2.0640320777893066, 2.0876040458679199, 2.0520210266113281]
-
Pythonで関数名を文字列として取得するにはどうすればよいですか?
すべての関数には、__name__というプロパティが付加されています。このプロパティにアクセスして、関数の名前を取得できます。例: def some_func(): return 0 print some_func.__name__ これにより、出力が得られます: some_func
-
階乗を見つけるために再帰的なPython関数を書く方法は?
次のコードは、n=6およびn=15の階乗を計算します 例 def factorial(n): if n == 1: return 1 else: res = n * factorial(n-1) return res print ("factorial(6) = %d" %factorial(6)) print ("factorial(15) = %d" %fact