产生式实验–动物识别
第一部分是初始化综合数据库,分为两类,一类是间接数据库,即不指向最终动物的信息。另一类是直接数据库,即指向最终动物的信息。使用的是列表里面存储规则和结果,即每条规则后面紧跟一个结果,规则存到集合里方便后续用 is.subset()判断是否在已知动物特征中,规 则对应的结果用字符串表示,不需要转换。
添加间接数据库
同理添加直接数据库
第二部分输入动物已知特征,查询种类 将输入的动物特征字符串转换为集合,因为字符串不可变,列表不方便比较。如果 规则是动物特征的子集,则把规则对应的结果加到特征集合里,同时去掉已用过的特征(即规则)。
**
完整代码
**
middle=[]#存放规则和中间结果
final=[]#存放规则特征和最终结果
#规则特征用集合表示,既能修改动物特征集合,又方便用.issubset()判断规则是否是动物特征的子集,进而将对应结果加入动物特征集合,同时要从动物特征集合删去用过的规则。
def changetoset(str):#将字符串转化为集合的函数
li0=set()
tr=""
for i in range(0,len(str)):
if (str[i]!=" "):
tr+=str[i]
else:
li0.add(tr)
tr=""
i+=1
return li0#返回集合
def creatmiddle(