赞
踩
由于明天的实验时间较为紧张,所以本人提前完成实验,将代码呈现如下(有些许参考):
由于明天的实验时间较为紧张,所以本人提前完成实验,将代码呈现如下(有些许参考):
#判断有无重复元素 def judge_repeat(value,list=[]): for i in range(0,len(list)): if(list[i]==value): return 1 else: if(i!=len(list)-1): continue else: return 0 #对综合数据库进行结果判断 def judge_animal(list): for i in list: if(i=='23'): #食肉 for i in list: if(i=='12'): #黄褐色 for i in list: if(i=='21'): #哺乳类 for i in list: #老虎和金钱豹的差异唯一在于有斑点和有黑色条纹上。 if(i=='13'): #有斑点 print("黄褐色,有斑点,哺乳类,食肉类->金钱豹\n") print("所识别的动物为金钱豹") return 0 elif(i=='14'): #有黑色条纹 print("黄褐色,有黑色条纹,哺乳类,食肉类->虎\n") print("所识别的动物为老虎") return 0 #斑马与长颈鹿都为蹄类动物 elif(i=='24'): #蹄类 for i in list: #判断斑马 if(i=='14'): #有黑色条纹 print("有黑色条纹,蹄类->斑马\n") print("所识别的动物为斑马") return 0 #判断长颈鹿 elif(i=='13'): #有斑点 for i in list: if(i=='15'): #长脖子 for i in list: if(i=='16'): print("有斑点,有黑色条纹,长脖子,蹄类->长颈鹿\n") print("所识别的动物为长颈鹿") return 0 elif(i=='20'): for i in list: if(i=='22'): print("善飞,鸟类->信天翁\n") print("所识别的动物为信天翁") return 0 elif(i=='22'): for i in list: if(i=='4'): for i in list: if(i=='15'): for i in list: if(i=='16'): print("不会飞,长脖,长腿,鸟类->鸵鸟\n") print("所识别的动物为鸵鸟") return 0 elif(i=='4'): for i in list: if(i=='22'): for i in list: if(i=='18'): for i in list: if(i=='19'): print("不会飞,会游泳,黑白二色,鸟类->企鹅\n") print("所识别的动物企鹅") return 0 else: if(list.index(i) != len(list)-1): continue else: #如果未找到则输出“根据所给条件无法判断为何种动物” print("\n根据所给的初始条件无法判断该动物是什么动物") #以键值对(K-V)的形式存储相关的特征列表信息,1-24为特征值;25-31为判断的动物 dict_before={'1':'有毛发','2':'产奶','3':'有羽毛','4':'不会飞','5':'会下蛋','6':'吃肉','7':'有犬齿', '8':'有爪','9':'眼盯前方','10':'有蹄','11':'反刍','12':'黄褐色','13':'有斑点','14':'有黑色条纹', '15':'长脖子','16':'长腿','17':'不会飞','18':'会游泳','19':'黑白二色','20':'善飞','21':'哺乳类', '22':'鸟类','23':'食肉类','24':'蹄类','25':'金钱豹','26':'虎','27':'长颈鹿','28':'斑马', '29':'鸵鸟','30':'企鹅','31':'信天翁'} #用于提示用户输入相应的数字 print("--------------------------------------------------【动物识别系统】---------------------------------------") print('''请输入特征条件前面的数字(具体对应如下): [ 1:有毛发 2:产奶 3:有羽毛 4:不会飞 5:会下蛋 6:吃肉 7:有犬齿 8:有爪 9:眼盯前方 10:有蹄 11:反刍 12:黄褐色 13:有斑点 14:有黑色条纹 15:长脖 16:长腿 17:不会飞 18:会游泳 19:黑白二色 20:善飞 21:哺乳类 22:鸟类 23:食肉类 24:蹄类 ] ''' ) print("-------------------------------------------- 【输入Q或q退出!!!!!】-----------------------------------") #综合数据库 list_real=[] #循环输入前提条件所对应的字典中的键 while(1): num_real=input("请输入:") list_real.append(num_real) if(num_real=='Q' or num_real=='q'): #当输入Q或q实现退出判断 break print("\n") #输出前提条件 print("前提条件为:") for i in range(0,len(list_real)-1): print(dict_before[list_real[i]],end=" ") print("\n") print("推理过程如下:") #遍历综合数据库list_real中的前提条件 for i in list_real: if(i=='1'): if(judge_repeat('21',list_real)==0): list_real.append('21') print("有毛发->哺乳类") elif(i=='2'): if(judge_repeat('21',list_real)==0): list_real.append('21') print("产奶->哺乳类") elif(i=='3'): if(judge_repeat('22',list_real)==0): list_real.append('22') print("有羽毛->鸟类") else: if(list_real.index(i) !=len(list_real)-1): continue else: break for i in list_real: if(i=='4'): for i in list_real: if(i=='5'): if(judge_repeat('22',list_real)==0): list_real.append('22') print("不会飞,会下蛋->鸟类") elif(i=='6'): for i in list_real: if(i=='21'): if(judge_repeat('21',list_real)==0): list_real.append('21') print("食肉->哺乳类") elif(i=='7'): for i in list_real: if(i=='8'): for i in list_real: if(i=='9'): if(judge_repeat('23',list_real)==0): list_real.append('23') print("有犬齿,有爪,眼盯前方->食肉类") elif(i=='10'): for i in list_real: if(i=='21'): if(judge_repeat('24',list_real)==0): list_real.append('24') print("有蹄,哺乳类->蹄类") elif(i=='11'): for i in list_real: if(i=='21'): if(judge_repeat('24',list_real)==0): list_real.append('24') print("反刍,哺乳类->哺乳类") else: if(i !=len(list_real)-1): continue else: break judge_animal(list_real) #调用前面的judge_animal函数,实现结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。