Sympy 简明教程
SymPy - Logical Expressions
布尔函数在 sympy.basic.booleanarg module 中定义。可以使用标准 python 运算符 &(And)、|(Or)、~(Not)以及 >> 和 << 来构建布尔表达式。布尔表达式继承自 SymPy 核心模块中定义的 Basic 类。
BooleanTrue function
此函数等效于核心 Python 中的 True。它返回一个单例,可以通过 S.true 检索。
>>> from sympy import *
>>> x=sympify(true)
>>> x, S.true
上面的代码段给出了以下输出:
BooleanFalse function
类似地,此函数等效于 Python 中的布尔 False,可以通过 S.false 访问。
>>> from sympy import *
>>> x=sympify(false)
>>> x, S.false
上面的代码段给出了以下输出:
And function
逻辑 AND 函数对其两个参数求值,如果其中任何一个为 False,则返回 False。该函数模拟 & 运算符。
>>> from sympy import *
>>> from sympy.logic.boolalg import And
>>> x,y=symbols('x y')
>>> x=True
>>> y=True
>>> And(x,y), x"&"y
上面的代码段给出了以下输出:
Or function
此函数对两个布尔参数求值,如果其中任何一个为 True,则返回 True。| 运算符方便地模拟其行为。
>>> from sympy import *
>>> from sympy.logic.boolalg import Or
>>> x,y=symbols('x y')
>>> x=True
>>> y=False
>>> Or(x,y), x|y
上面的代码段给出了以下输出:
Not Function
逻辑 Not 函数对布尔参数求反。如果其参数为 False,则返回 True;如果为 True,则返回 False。~ 运算符执行与 Not 函数类似的操作。如下例所示:
>>> from sympy import *
>>> from sympy.logic.boolalg import Or, And, Not
>>> x,y=symbols('x y')
>>> x=True
>>> y=False
>>> Not(x), Not(y)
上面的代码段给出了以下输出:
Xor Function
逻辑 XOR(异或)函数在奇数个参数为 True、其余参数为 False 时返回 True,在偶数个参数为 True、其余参数为 False 时返回 False。^ 运算符执行类似的操作。
>>> from sympy import *
>>> from sympy.logic.boolalg import Xor
>>> x,y=symbols('x y')
>>> x=True
>>> y=False
>>> Xor(x,y), x^y
上面的代码段给出了以下输出:
(True, True)
>>> a,b,c,d,e=symbols('a b c d e')
>>> a,b,c,d,e=(True, False, True, True, False)
>>> Xor(a,b,c,d,e)
上面的代码段给出了以下输出:
Nand Function
此函数执行逻辑 NAND 操作。它对其参数求值,如果其中任何一个为 False,则返回 True,如果所有参数都为 True,则返回 False。
>>> from sympy import *
>>> from sympy.logic.boolalg import Nand
>>> a,b,c=symbols('a b c')
>>> a,b,c=(True, False, True)
>>> Nand(a,b,c), Nand(a,c)
上面的代码段给出了以下输出:
Nor Function
此函数执行逻辑 NOR 操作。它对其参数求值,如果其中任何一个为 True,则返回 False,如果所有参数都为 False,则返回 True。
>>> from sympy import *
>>> from sympy.logic.boolalg import Nor
>>> a,b,c=symbols('a b c')
>>> a,b,c=(True, False, True)
>>> Nor(a,b,c), Nor(a,c)
上面的代码段给出了以下输出:
Equivalent function
此函数返回等价关系。当且仅当 A 和 B 都是 True 或都是 False 时,Equivalent(A, B) 为 True。如果所有参数在逻辑上等效,则该函数返回 True。否则返回 False。
>>> from sympy import *
>>> from sympy.logic.boolalg import Equivalent
>>> a,b,c=symbols('a b c')
>>> a,b,c=(True, False, True)
>>> Equivalent(a,b), Equivalent(a,c)
上面的代码段给出了以下输出: