SymPy - 数字

SymPy 包中的核心模块包含表示原子序数的 Number 类。 这个类有两个子类:Float 和 Rational 类。 Integer 类进一步扩展了 Rational 类。

Float 类代表一个任意精度的浮点数。

>>> from sympy import Float 
>>> Float(6.32)

以上代码片段的输出如下 −

6.32

SymPy 可以将整数或字符串转换为浮点数。

>>> Float(10)

10.0

Float('1.33E5')# scientific notation

133000.0

在转换为浮点数时,也可以指定精度的位数,如下所示 −

>>> Float(1.33333,2)

以上代码片段的输出如下 −

1.3

数字 (p/q) 的表示形式表示为 Rational 类的对象,其中 q 是一个非零数。

>>> Rational(3/4)

以上代码片段的输出如下 −

$\frac{3}{4}$

如果将浮点数传递给 Rational() 构造函数,它返回其二进制表示的基础值

>>> Rational(0.2)

以上代码片段的输出如下 −

$\frac{3602879701896397}{18014398509481984}$

For simpler representation, specify denominator limitation.

>>> Rational(0.2).limit_denominator(100)

以上代码片段的输出如下 −

$\frac{1}{5}$

当一个字符串被传递给 Rational() 构造函数时,返回一个任意精度的有理数。

>>> Rational("3.65")

以上代码片段的输出如下 −

$\frac{73}{20}$

传递两个数字参数也可以获得Rational对象。 分子和分母部分可作为属性使用。

>>> a=Rational(3,5) 
>>> print (a) 
>>> print ("numerator:{}, denominator:{}".format(a.p, a.q))

以上代码片段的输出如下 −

3/5

numerator:3, denominator:5

>>> a

以上代码片段的输出如下 −

$\frac{3}{5}$

SymPy 中的整数类表示任意大小的整数。 构造函数可以接受浮点数或有理数,但小数部分被丢弃

>>> Integer(10)

以上代码片段的输出如下 −

10

>>> Integer(3.4)

以上代码片段的输出如下 −

3

>>> Integer(2/7)

以上代码片段的输出如下 −

0

SymPy 有一个 RealNumber 类作为 Float 的别名。 SymPy 还将 Zero 和 One 定义为可分别使用 S.Zero 和 S.One 访问的单例类,如下所示 −

>>> S.Zero

输出结果如下 −

0

>>> S.One

输出结果如下 −

1

其他预定义的单例数对象有 Half、NaN、Infinity 和 ImaginaryUnit

>>> from sympy import S 
>>> print (S.Half)

输出结果如下 −

½

>>> print (S.NaN)

输出结果如下 −

nan

Infinity 可用作 oo 符号对象或 S.Infinity

>>> from sympy import oo 
>>> oo

以上代码片段的输出如下 −

$\infty$

>>> S.Infinity

以上代码片段的输出如下 −

$\infty$

ImaginaryUnit 数可以作为 I 符号导入或作为 S.ImaginaryUnit 访问并表示 -1 的平方根

>>> from sympy import I 
>>> I

当你执行上面的代码片段时,你会得到以下输出 −

i

>>> S.ImaginaryUnit

上面代码片段的输出如下 −

i

>>> from sympy import sqrt 
>>> i=sqrt(-1) 
>>> i*i

当你执行上面的代码片段时,你会得到以下输出 −

-1