cdef int a, b, i def fibonacci(n):if n <= 0:raise ValueError("n必须是正整数") if n == 1:return 0elif n == 2:return 1else: a = 0 b = 1for i in range(3, n + 1): a, b = b, a + breturn b
run.py
import fbimport timeit def fibonacci(n):if n <= 0:raise ValueError("n必须是正整数") if n == 1:return 0elif n == 2:return 1else: a, b = 0, 1for _ in range(3, n + 1): a, b = b, a + breturn b # 纯Python版本python_time = timeit.timeit("fibonacci(300)", setup="from __main__ import fibonacci", number=1000000) # Cython版本cython_time = timeit.timeit("fb.fibonacci(300)", setup="import fb", number=1000000) print("纯Python版本执行时间:", python_time)print("Cython版本执行时间:", cython_time)