SymPy - 符号类
Symbol 是 symPy 库中最重要的类。 如前所述,符号计算是用符号完成的。 SymPy 变量是 Symbols 类的对象。
Symbol() 函数的参数是一个包含可以分配给变量的符号的字符串。
>>> from sympy import Symbol >>> x=Symbol('x') >>> y=Symbol('y') >>> expr=x**2+y**2 >>> expr
上面的代码片段给出了等同于下面表达式的输出 −
$x^2 + y^2$
一个符号可能有多个字母。
>>> s=Symbol('side') >>> s**3
上面的代码片段给出了等同于下面表达式的输出 −
$side^3$
SymPy 还有一个 Symbols() 函数可以一次定义多个符号。 字符串包含以逗号或空格分隔的变量名称。
>>> from sympy import symbols >>> x,y,z=symbols("x,y,z")
在 SymPy 的 abc 模块中,所有拉丁字母和希腊字母都被定义为符号。 因此,这种方法不是实例化 Symbol 对象,而是很方便。
>>> from sympy.abc import x,y,z
但是,名称C、O、S、I、N、E 和Q 是预定义的符号。 此外,abc 模块中未定义具有多个字母的符号,您应该使用上面的 Symbol 对象。 abc 模块定义了可以检测默认 SymPy 命名空间中的定义的特殊名称。 clash1 包含单个字母,clash2 包含多个字母冲突符号
>>> from sympy.abc import _clash1, _clash2 >>> _clash1
上面代码片段的输出如下 −
{'C': C, 'O': O, 'Q': Q, 'N': N, 'I': I, 'E': E, 'S': S}
>>> _clash2
上面代码片段的输出如下 −
{'beta': beta, 'zeta': zeta, 'gamma': gamma, 'pi': pi}
可以使用类似于 range() 函数的语法来定义索引符号。 范围用冒号表示。 范围类型由冒号右侧的字符确定。 如果 itr 是一个数字,则将左边所有连续的数字作为非负起始值。 右边的所有连续数字都被视为比结束值大 1。
>>> from sympy import symbols >>> symbols('a:5')
上面代码片段的输出如下 −
(a0, a1, a2, a3, a4)
>>> symbols('mark(1:4)')
上面代码片段的输出如下 −
(mark1, mark2, mark3)