首页 文章

对于具有实数的分数,Sympy返回零

提问于
浏览
1

我是Sympy的新手,并且意识到计算和简化代数表达式非常好 .

但是,当我写出实数的分数时,它返回零(像'x'这样的符号分数没有问题) . 我究竟做错了什么?

from sympy import *

1./2
Out[2]: 0.5

1/2
Out[3]: 0

2 回答

  • 7

    这是因为python(2.7)需要浮点分母或分子才能返回浮点数 .

    在python 3.x中,任何分区都返回一个浮点数

    您还可以使用以下命令在python 2.7中“修复”:

    from __future__ import division
    

    实际上python遵循整数除法规则并返回一个整数而不是一个浮点数

  • 0

    1/2 根本没有使用SymPy . 这只是由Python评估 . 读一读http://docs.sympy.org/latest/tutorial/gotchas.html#two-final-notes-and(我实际上建议阅读whole SymPy tutorial) .

    基本上,如果你使用SymPy,你可能想要一个有理数,你可以用 Rational(1, 2) 获得 . 更简单的输入方法是 S(1)/2 . S 函数将 1 转换为SymPy的 Integer(1) ,然后在除以时变为 Rational .

相关问题