我似乎不能写(伪代码):打印所有X的X和Y,Y,其中X==True和Y==True或Y==False
>>> from pyDatalog import pyDatalog
>>> pyDatalog.create_terms('X,Y')
>>> print((X==True)
X
----
True
>>> print((X==True) & (Y==True))
X | Y
-----|-----
True | True我们的目标是编写如下内容:
>>> print((X==True) & ((Y==True) or (Y==False)))
X | Y
-----|-----
True | True
True | False相反,这会打印出前一条命令返回的内容。
我该怎么做呢?
发布于 2016-01-25 03:37:30
我对pyDatalog还有些陌生,但我的理解是,析取应该被分成多行。所以你的代码会是这样的(无可否认,这有点不明智):
from pyDatalog import pyDatalog
pyDatalog.create_terms('X,Y')
print(((X==True) & ((Y==True))))
print(((X==True) & ((Y==False))))发布于 2016-04-13 08:19:13
如果这意味着要遍历X和Y的布尔值集合,并打印X& Y的结果,则应该可以这样做:
from pyDatalog import pyDatalog
allValues = [True, False]
pyDatalog.create_terms('result, X, Y, R, table')
(result[X, Y] == True) <= (X == True) & (Y == True)
(result[X, Y] == False) <= (X == False)
(result[X, Y] == False) <= (Y == False)
table(X, Y, R) <= (X._in(allValues)) & (Y._in(allValues)) & (R == result[X, Y])
print(table(X, Y, R))这是输出:
X | Y | R
------|-------|------
False | True | False
False | False | False
True | True | True
True | False | Falsehttps://stackoverflow.com/questions/34503832
复制相似问题