Python 有没有办法让分数有根?

Python 有没有办法让分数有根?,python,Python,有没有办法让分数(在python中)有根?当我写分数(np.sqrt(2),2)时,它给了我1/2,因为分数取整数作为参数。我想让2的平方根除以2,并保持2在根下,以免在计算时失去精度 编辑:我使用的是“分数”软件包。当我搜索要安装的软件包时,我在任何地方都找不到“分数”。不完全确定以下内容是否是您想要的,但是,这里是: 从分数导入分数作为F 将numpy作为np导入 打印(F(F(np.sqrt(2)),2).极限分母(最大分母=100000)) 打印(5741/8119)#最大分母=1000

有没有办法让分数(在python中)有根?当我写分数(np.sqrt(2),2)时,它给了我1/2,因为分数取整数作为参数。我想让2的平方根除以2,并保持2在根下,以免在计算时失去精度


编辑:我使用的是“分数”软件包。当我搜索要安装的软件包时,我在任何地方都找不到“分数”。

不完全确定以下内容是否是您想要的,但是,这里是:

从分数导入分数作为F
将numpy作为np导入
打印(F(F(np.sqrt(2)),2).极限分母(最大分母=100000))
打印(5741/8119)#最大分母=10000
印刷品(33461/47321)
印刷品(np.sqrt(2)/2)
将产生:

33461/47321
0.7071067865500678
0.7071067813444348
0.7071067811865476
更新

非理性到理性的转换不可能保持精度。任何有理分数都不能等于相应的无理数。我们所能做的就是得到最接近的值


作为进一步的了解,我们为您提供了一个增强建议

编辑 如果您只想在unicode中以数学方式显示它:

从pylatexenc.latex2text导入LatexNodes2Text
#将某些latex unicode输入转换为实际latex输出
在_expr_unicode=r“”“$\frac{\sqrt{2}}{2}$”
out_latex=LatexNodes2Text()。latex_到_文本(以unicode表示)
打印(“数学公式:”,输出)
这将输出:

数学公式:√(2)/2

正如评论所建议的,我在Symphy包中找到了sqrt。例如,sympy.sqrt(8)生成2*sqrt(2),因此它不仅将数字保留在根下,以免丢失精度,它还允许我使用它进行操作并简化它。

顺便说一句,内置库
分数
用于有理数。您可能会发现它很有用。您是在谈论内置
分数。分数
<代码>分数。分数(np.sqrt(2,2)
引发一个
类型错误
告诉@quamrana说了什么。它是如何给你的
1/2
?如果你能忍受用无理数(如
sqrt(2)
)做数学时固有的不准确,那么你肯定能忍受
sqrt(2)/2
中的不准确,完全忘记分数。这并不能保持精度。。。它已经在第四个数字中失去了它,从非理性到理性的转换必然会失去精度;顺便说一句,分母值可以设置!