Python 产生式系统(国家辨别)

该代码实现了一个根据输入的国家特征进行推理的系统,能够识别并输出匹配的国家名称。特征包括地理位置、人种、经济发展状况等,涵盖了亚洲、欧洲、非洲、北美洲、南美洲和澳洲的主要国家。系统通过遍历输入的特征列表,对比预设的国家特征进行匹配,并最终给出结论。
摘要由CSDN通过智能技术生成

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 == '1':#亚洲
            for i in list :
                if i == '7' :#黄种人
                   for i in list:
                        if i == '10':#五常
                           print("亚洲、黄种人、五常之一--->中国")
                           print("所示国家为中国")
                           return 0
                        elif i == '14':#发达国家
                            for i in list :
                                if i == '22' :#战败国
                                  print("亚洲、黄种人、发达国家--->日本")
                                  print("所示国家为日本")
                                  return 0
                        elif i == '15' :#发展中
                            for i in list :
                                if i == '19':#社会主义
                                    for i in list :#有核国家
                                        if i == '11':
                                            print("亚洲、黄种人、发展中国家、社会主义、有核国家--->中国")
                                            print("所示国家为中国")
                                            return 0
                elif i == '8' :#白种人
                     for i in list :
                         if i == '14':#发达
                             for i in list :
                               if i == '18':#资本主义
                                   for i in list :
                                       if i == '23' :#热
                                           print("亚洲、白种人--->沙特阿拉伯")
                                           print("所示国家为沙特阿拉伯")
                                           return 0
                elif i == '10':#五常
                           print("亚洲、五常之一--->中国")
                           print("所示国家为中国")
                           return 0

        if i =='2':#欧洲
            for i in list:
                if i == '10':#五常
                    print("欧洲、五常之一--->英国")
                    print("所示国家为英国")
                    return 0
                elif i == '22':
                    print("欧洲、战败国--->德国")
                    print("所示国家为德国")
                    return 0
                elif i == '12':
                    print("欧洲、国土面积小--->黑山共和国")
                    print("所示为黑山共和国")
                    return 0
        if i == '4':#北美洲
            for i in list :
                if i == '10':#五常
                    print("北美洲、五常之一--->美国")
                    print("所示国家为美国")
                    return 0
                if i == '8':#白种人
                    for i in list :
                        if i == '11':#有核国家
                            print("北美洲、白种人、有核国家--->美国")
                            print("所示国家为美国")
                            return 0
                        elif i == '14':#发达国家
                            for i in list :
                                if i == '17':#加入北约
                                    for i in list :
                                        if i == '18':#资本主义
                                            for i in list :
                                                if i == '20' :#战争多发
                                                    print("北美洲、白种人、发达国家、加入北约、资本主义、战争多发--->美国")
                                                    print("所示国家为美国")
                                                    return 0                                          
        if i == '3':#非洲
            for i in list :
                if i == '23' :#气候炎热
                  for i in list :
                      if i == '9':#黑种人
                        for i in list :
                            if i == '12' :#国土面积小
                              for i in list :
                                  if i == '16' :#贫困国家
                                     print("非洲、气候炎热、黑种人、国土面积小、贫困国家--->津巴韦布")
                                     print("所示国家为津巴韦布")
                                     return 0
        if i == '5' :#南美洲
           for i in list :
                if i == '8':#白种人为主
                 for i in list :
                     if i == '12':#国土面积小
                         for i in list :
                             if i == '15':#发展中国家
                               for i in list :
                                    if i == '18':#资本主义
                                        for i in list :
                                            if i == '20':#战争多发
                                                print("南美洲、白种人、国土面积小、发展中国家、资本主义、战争多发--->古巴")
                                                print("所示国家为古巴")
                                                return 0
                elif i == '20': #战争多发
                   print("南美洲、战争多发--->古巴")
                   print("所示国家为古巴")
                   return 0
        if i == '6':#澳洲
           for i in list :
               if i == '8':#白人
                   for i in list :
                       if i == '14':#发达国家
                         for i in list :
                             if i == '21' :#英语
                                 for i in list :
                                     if i == '23' :#气候炎热
                                         print("澳洲、白人、发达国家、英语、气候炎热--->澳大利亚")
                                         print("所示国家为澳大利亚")
                                         return 0
        else:
            if (list.index(i) != len(list) - 1):
                continue
            else:
                print("根据所给条件无法判断")
                return 0




        

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': '古巴', '32': '沙特阿拉伯', '33': '津巴韦布'}
print("""输入对应条件前面的数字:
                                *************************************************************************
                                *1:亚洲  2:欧洲  3:非洲  4:北美洲  5:南美洲                                 
                                *6:澳洲  7:黄种人  8:白种人  9:黑种人  10:五常之一                           
                                *11:有核国家  12:国土面积小  13:欧盟国家  14:发达国家  15:发展中国家        
                                *16:贫困国家  17:加入北约  18:资本主义国家 19:社会主义国家  20:战争多发  
                                *21:英语为主  22:二战战败国  23:气候炎热              
                                *************************************************************************
                                *******************当输入数字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("推理过程如下:")
judge_last(list_real)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值