基于python的动物判别系统

首先,代码是仿照别人的,自己做修改,如果不想看这篇文章的朋友可以去看原文:https://blog.csdn.net/dongjishuo/article/details/83025764?utm_source=app
这篇文章更多是为了供自己学习记录痕迹罢了,顺便给朋友们参考学习!
因为要输入前提条件,所以用 for 循环进行是一个不错的选择,当然,循环的列表则需要整合成数据库,还有规则库。
看代码,相信你更能理解:

#判断有无重复元素
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_last(list):
    for i in list:
        if(i=='21'):
            for i in list:
               if(i=='23'):
                   for i in list:
                       if(i=='12'):
                           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=='15'):
                    for i in list:
                        if(i=='16'):
                            for i in list:
                                if(i=='13'):
                                    print("蹄类动物->长脖子->长腿->有暗斑点->长颈鹿\n")
                                    print("所识别动物为长颈鹿")
                                    return 0
                elif(i=='14'):
                    print("蹄类动物->有黑条纹->斑马")
                    print("所识别动物为斑马")
                    return 0
        elif(i=='22'):
            for i in list:
                if(i=='15'):
                    for i in list:
                        if(i=='16'):
                            for i in list:
                                if(i=='4'):
                                    for i in list:
                                        if(i=='19'):
                                            print("鸟类->长脖子->长腿->不会飞->有黑白二色->鸵鸟")
                                            print("所识别动物为鸵鸟")
                                            return 0
                elif(i=='18'):
                    for i in list:
                        if(i=='4'):
                            for i in list:
                                if(i=='19'):
                                    print("鸟类->会游泳->不会飞->有黑白二色->企鹅")
                                    print("所识别动物为企鹅")
                                    return 0
                elif(i=='20'):
                    print("鸟类->善飞->信天翁")
                    print("所识别动物为信天翁")
                    return 0
        else:
            if(list.index(i)!=len(list)-1):
                continue
            else:
                print("\n根据所给条件无法识别该动物")

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('''输入对应条件前面的数字:
                            1:有毛发 2:产奶 3:有羽毛 4:不会飞 5:会下蛋 6:吃肉 7:有犬齿 8:有爪 
                            9:眼盯前方 10:有蹄 11:反刍 12:黄褐色 13:有斑点 14:有黑色条纹 15:长脖 
                            16:长腿 17:不会飞 18:会游泳 19:黑白二色 20:善飞 21:哺乳类
                            22:鸟类 23:食肉类 24:蹄类 
                            ******循环输入上面数字后,请再输入0结束条件,避免一直循环输入!*****
    ''')

#综合数据库
list_real=[]
while(1):#循环输入
    num_real=input("请输入:")
    list_real.append(num_real)
    if(num_real=='0'):
        break
print("\n")
#输出前提条件
print("前提条件为:")
for i in range(0,len(list_real)-1):
    print(dict_before[list_real[i]],end=" ")
print("\n")
#遍历数据库的条件
print("推理过程如下:")
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("有羽毛->鸟类")
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("反刍,哺乳类->蹄类")
judge_last(list_real)

层次分明,要注意,符号的运用,自己因有几处用到了中文符,但显示不出错,改了几次,才发现原来是没用到英文符号。

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值