SymPy 逻辑表达式

SymPy 逻辑表达式

布尔函数在 sympy.basic.booleanarg 模块中定义 。可以使用标准的Python运算符 &(与)、|(或)、~(非)以及 >> 和 << 构建布尔表达式。布尔表达式继承自 SymPy 核心模块中定义的 Basic 类。

BooleanTrue 函数

此函数相当于 Python 核心中的 True。它返回一个可以通过 S.true 获取的单例。

>>> from sympy import * 
>>> x=sympify(true) 
>>> x, S.true

上述代码片段给出了以下输出−

(True, True)

BooleanFalse 函数

类似地,该函数相当于 Python 中的 Boolean False,并可以通过 S.false 来访问

>>> from sympy import * 
>>> x=sympify(false) 
>>> x, S.false

以上代码段给出如下输出 –

(False, False)

与操作

逻辑与函数对其两个参数进行评估,如果其中任何一个为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

上面的代码片段给出了以下输出−

(True, True)

>>> y=False 
>>> And(x,y), x"&"y

上述的代码片段给出了下面的输出结果:

(False, False)

Or函数

该函数评估两个布尔参数,并在其中一个为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

以上代码片段的输出结果如下:

(True, True)

>>> x=False 
>>> y=False 
>>> Or(x,y), x|y

上面的代码片段给出了以下输出 −

(False, False)

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)

上面的代码片段给出了以下输出 −

(False, True)

>>> Not(And(x,y)), Not(Or(x,y))

上面的代码片段产生以下输出 −

(True, False)

异或函数

逻辑异或(exclusive OR)函数返回True,如果奇数个参数为True并且其他参数为False,则返回False,如果偶数个参数为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)

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

True

在上面的情况下,有三个(奇数个)参数为True,因此Xor返回True。然而,如果True参数的个数是偶数,则结果为False,如下所示:

>>> a,b,c,d,e=(True, False, False, True, False) 
>>> Xor(a,b,c,d,e)

上面的代码片段给出了以下输出 –

False

Nand函数

该函数执行逻辑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)

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

(True, False)

Nor函数

该函数执行逻辑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)

上面的代码片段输出结果如下:-

(False, False)

注意,虽然SymPy为Xor提供了^操作符,Not提供了~操作符,Or提供了|操作符和And提供了&操作符作为方便之用,但它们在Python中的正常使用是作为位运算符。因此,如果操作数是整数,结果会不同。

等效的函数

此函数返回等价关系。当且仅当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)

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

(False, True)

ITE 函数

该函数在编程语言中充当 If-Then-Else 子句。ITE(A, B, C) 评估并返回结果 B,如果 A 为真;否则返回结果 C。所有参数必须为布尔值。

>>> from sympy import * >>> from sympy.logic.boolalg import ITE >>> a,b,c=symbols('a b c') >>> a,b,c=(True, False, True) 
>>> ITE(a,b,c), ITE(a,c,b)

上面的代码片段给出了以下输出结果−

(False, True)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程