python中的Prolog代码,Pyswip输出为“None”

2024-03-28 11:02:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我安装了pyswip软件包并尝试了以下代码:

from pyswip import Prolog,Query

prolog = Prolog()
prolog.assertz("minTime(4,Y):-Y>=4")

res = prolog.query("minTime(4,5)")
print(res)

但它输出“无”。它应该在Swi Prolog中输出“True”。我想知道如何用python输出“True”


Tags: 代码fromimporttrueresqueryprologswi
2条回答

您试图打印的res实际上是一个生成器对象,无法打印,因为这些值不存在,它们是按需生成的。只需使用list()函数从中获取值,然后将其类型转换为布尔数据类型

如果你尝试help(prolog),你会找到答案

res是一个Python生成器对象,它必须转换为Python列表,该列表必须转换为Python bool,即

>>>bool(list(prolog.query("minTime(4,4)")))
True

相关问题 更多 >