2024-03-28 11:02:06 发布
网友
我安装了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”
您试图打印的res实际上是一个生成器对象,无法打印,因为这些值不存在,它们是按需生成的。只需使用list()函数从中获取值,然后将其类型转换为布尔数据类型
如果你尝试help(prolog),你会找到答案
help(prolog)
res是一个Python生成器对象,它必须转换为Python列表,该列表必须转换为Python bool,即
res
>>>bool(list(prolog.query("minTime(4,4)"))) True
您试图打印的res实际上是一个生成器对象,无法打印,因为这些值不存在,它们是按需生成的。只需使用list()函数从中获取值,然后将其类型转换为布尔数据类型
如果你尝试
help(prolog)
,你会找到答案res
是一个Python生成器对象,它必须转换为Python列表,该列表必须转换为Python bool,即相关问题 更多 >
编程相关推荐