尝试创建表格以比较计算数字平方根的不同方法。使用1到9之间的整数测试脚本。
附件中的脚本以前在空闲状态下可以正常运行,但是现在导入列表时出现了另一个错误。该脚本从未在Jupyter Notebook中成功运行。
在Jupyter Notebook中运行代码时,唯一的变化是In []更改为In [*]。
一般来说,我是Jupyter Notebook / Idle / Python的新手。我了解[*]表示内核正在运行,但我不明白为什么在Idle(而不是Jupyter Notebook)中可以正常运行计算。
两个程序都与Anaconda一起安装。 Python是版本3.7.3。使用的所有模块均安装在anaconda中。操作系统是Windows 10。
'''Function to compare two methods of finding the square root
of a value
'''This works in Idle but can not run in Jupyter Notebook. I don't understand why.
from tabulate import tabulate as tb
import numpy as np
import math
def mysqrt(a):
#x = float(input('What is a reasonable estimate for ' + str(a) + '?\n'))
#epsilon = float(input('What is your accuracy tolerance?\n'))
x = a/2
epsilon = 0.05
while True:
y = (x + a/x) / 2
if abs(y-x) < epsilon:
return y
break
x = y
def test_square_root():
headers = ["a","mysqrt(a)", "math.sqrt(a)","diff"]
table = np.zeros((9,4))
for i in range(1,9):
my_a = mysqrt(i)
math_a = math.sqrt(i)
diff = abs(my_a - math_a)
print(np.shape(table[0,:]))
table[i,:] = [i,my_a,math_a,diff]
print(tb(table,headers))
test_square_root()
程序先前在空闲状态下运行时,将输出带有四列和10行(包括标题)的格式化表。
当我现在在Idle中运行脚本时,收到错误消息:
Traceback (most recent call last):
File "C:\Users\aIDAN\Documents\Python Scripts\Think Python\test2.py", line 1, in <module>
from tabulate import tabulate as tb
ModuleNotFoundError: No module named 'tabulate'
在Jupyter Notebook中,我没有收到任何输出或反馈,只有In []更改为In [*])
感谢您的时间!
答案 0 :(得分:0)
您缺少依赖项。
要解决此问题并使用命令行安装它,请激活您的Conda环境并输入:
python -m pip install tabulate
完成后,尝试再次运行代码。
答案 1 :(得分:0)
当前问题是制表模块在您的python库中不可用。 它是第三方包,不包含python的标准发行版
使用
pip3安装列表
安装表格模块。
在Linux中,下面显示了在用户上下文中安装制表模块的命令。
[kuvivek@vivekcentos ~]$ python3.7 -m pip install tabulate --user
Collecting tabulate
Using cached https://files.pythonhosted.org/packages/c2/fd/202954b3f0eb896c53b7b6f07390851b1fd2ca84aa95880d7ae4f434c4ac/tabulate-0.8.3.tar.gz
Installing collected packages: tabulate
Running setup.py install for tabulate ... done
Successfully installed tabulate-0.8.3
[kuvivek@vivekcentos polls]$