首页 > 解决方案 > 带有 Pyswip 的 Python 中的 Prolog 代码输出“无”

问题描述

我安装了 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”。

标签: pythonprolog

解决方案


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

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

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

推荐阅读