Sympy 简明教程
SymPy - Symbols
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)