我希望将SymPy结果显示为精确结果而不是十进制结果。我浏览了SymPy文档,但找不到任何有用的信息。
为了说明问题,这是一些示例代码:
from sympy import *
u = symbols("u")
integrate((1+u)**(1/2), (u, 0, 1))
输出:
1.21895141649746
预期结果:
(4/3)*sqrt(2)-(2/3)
参考方案
问题在于SymPy会简化包含浮点数的表达式,因此会删除那些符号表达式。尽管表达式看起来不像浮点数,但1/2除法是使用标准Python(内部表示为0.5)完成的。
解决方案是首先将分数的一部分转换为SymPy对象。最简单的方法是使用S函数,如:
from sympy import *
u = symbols("u")
print(integrate((1+u)**(S(1)/2), (u, 0, 1)))
输出所需的-2/3 + 4*sqrt(2)/3。
文档的gotcha section试图解释此行为。
Python uuid4,如何限制唯一字符的长度 - python
在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…Python:无法识别Pip命令 - python