使用Python'保持精确值;什么是数学?

使用Python'保持精确值;什么是数学?,python,Python,在Python中,表示无理数的表达式,如 math.sin(math.pi/3) 将返回十进制近似值 我一直在查看文档,寻找将其保持在准确值的方法(即返回sqrt(3)/2而不是0.8660254037844386),但我没有找到任何结果。我对Python还很陌生,所以如果错过了,我很抱歉。符号数学不是大多数通用编程语言都能做到的。Python使用整数和(实数和复数)浮点值。例如,符号math.pi不是数学常数π的表示,而是包含π的有限精度浮点近似值的Python变量 然而,有些人有时确实想做

在Python中,表示无理数的表达式,如

math.sin(math.pi/3)
将返回十进制近似值


我一直在查看文档,寻找将其保持在准确值的方法(即返回
sqrt(3)/2
而不是
0.8660254037844386
),但我没有找到任何结果。我对Python还很陌生,所以如果错过了,我很抱歉。

符号数学不是大多数通用编程语言都能做到的。Python使用整数和(实数和复数)浮点值。例如,符号
math.pi
不是数学常数π的表示,而是包含π的有限精度浮点近似值的Python变量

然而,有些人有时确实想做符号数学,所以工具作为第三方库存在。例如,您可以在Python中安装符号数学。

以下是您的答案:


精确值是指预期结果的math.sin(math.pi/3)?在赋值语句右侧写入
sqrt(3)/2
时,它将被Python计算的值所取代。您可以查看SymPy:
sqrt(3)/2
不是精确值,它是一个将被计算为某个值的表达式(在本例中为十进制近似值)。看起来你想要一个计算机代数系统。为什么十进制近似法不行?您是否只需要将评估延迟一段时间?
import sympy
sympy.sqrt(sympy.pi/3)
#> sqrt(pi)/3