为啥 VS Code 无法在我的程序中导入 timeit 模块?

Posted

技术标签:

【中文标题】为啥 VS Code 无法在我的程序中导入 timeit 模块?【英文标题】:Why is VS Code unable to import the timeit module in my program?为什么 VS Code 无法在我的程序中导入 timeit 模块? 【发布时间】:2020-08-25 17:28:28 【问题描述】:

这是我要执行的代码...我已导入并使用 timeit 模块检查哪个函数执行得更快,fibonacci_recurfibonacci_iter。我正在 VS Code 中执行这个 python 文件(版本:1.41.1(用户设置))

    #Importing timeit
    import timeit
    def fibonacci_recur(num): 
        if num<0: 
            print("Incorrect input") 
        elif num==0: 
            return 0 
        elif num==1: 
            return 1
        else: 
            return fibonacci_recur(num-1)+fibonacci_recur(num-2) 

    def fibonacci_iter(num):
          if (num == 0):
                  return 0
          elif (num == 1):
                  return 1
          elif (num >1 ):
                  fn = 0
                  fn1 = 1
                  fn2 = 2
                  for i in range(3, num):
                          fn = fn1+fn2
                          fn1 = fn2
                          fn2 = fn
                  return fn
          else:
                  return -1

    print(":9:9:9".format("Number","Iterative","Recursive"))
    for i in range(10,35,5):
            #Using the timeit module
            (":9:9:9".format(i,timeit.timeit(fibonacci_iter, number=100000),timeit.timeit(fibonacci_recur, number=100000)))

这是我在调试时遇到的错误:

无法加载源 '&lt;timeit-src&gt;':源不可用。

launch.json

    
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "$file",
            "console": "integratedTerminal",
            "justMyCode": false
        
    ]

可能是什么问题,我应该如何解决这个问题?

【问题讨论】:

确保您在用于执行此代码的 python 版本和环境中安装了 timeit。 【参考方案1】:

所需的包是time 而不是timeit

import time

查找函数已用的时间:

start = time.time()
recursive_fibonacci(n)
end = time.time()
print(end - start, 'seconds')

【讨论】:

以上是关于为啥 VS Code 无法在我的程序中导入 timeit 模块?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在我的 VS Code 终端中出现“无法加载 nodemon”?

为啥在组件中导入 VS 硬编码时,对象数组的行为会有所不同?

为啥我的 @Aspect 无法被我的 SpringBoot 应用程序识别?

为啥我的 VS Code 调试器在我的 C++ 代码周围弹跳?

为啥不在 Python 中导入转换器?

在 Next/React 组件中导入 global vs getStaticProps