SymPy – 数字
SymPy包中的核心模块包含Number类,代表原子数。这个类有两个子类。Float和Rational类。有理数类由Integer类进一步扩展。
Float类表示任意精度的浮点数。
>>> from sympy import Float
>>> Float(6.32)
上述代码片断的输出如下 −
6.32
SymPy可以将整数或字符串转换为浮点数。
>>> Float(10)
10.0
Float('1.33E5')# scientific notation
133000.0
在转换为float时,也可以指定精度的位数,如下图所示
>>> Float(1.33333,2)
上述代码片断的输出如下 −
1.3
一个数字(p/q)的代表被表示为有理数类的对象,q是一个非零数。
>>> Rational(3/4)
上述代码片断的输出如下 −
frac{3}{4}
如果一个浮点数被传递给Rational()构造函数,它将返回其二进制表示的基本值
>>> Rational(0.2)
上述代码片断的输出如下 −
\frac{3602879701896397}{18014398509481984}
对于更简单的表示,指定分母限制。
>>> Rational(0.2).limit_denominator(100)
上述代码片断的输出如下 −
frac{1}{5}
当一个字符串被传递给Rational()构造函数时,会返回一个任意精度的有理数。
>>> Rational("3.65")
上述代码片断的输出如下 −
frac{73}{20}
如果传递两个数字参数,也可以得到有理数对象。分子和分母部分可以作为属性使用。
>>> 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类表示任何大小的整数。构造函数可以接受一个浮点数或有理数,但小数部分会被丢弃。
>>> 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