Resolver el problema de no pasar la prueba experimental del experimento del sistema de producción (inteligencia artificial)

detalles de la misión

La tarea de este nivel: escribir un sistema que utilice métodos de producción para identificar animales.

Requisitos de programación

De acuerdo con las indicaciones, agregue código en el editor de la derecha para completar la operación del sistema de producción: sistema de reconocimiento de animales y, finalmente, lograr el resultado de ingresar las características del animal y generar el tipo de animal.

Nota especial

En este experimento, hay un fenómeno experimental, es decir, el resultado de salida de la ejecución de su autoprueba es exactamente el mismo que el resultado de salida requerido por el experimento y no puede pasar. ¿Por qué?
Respuesta: No sé si esto es un error en la plataforma experimental Touge. Generalmente, cuando escribimos el código del programa, el formato debe estar en inglés, pero en esta prueba experimental, el signo de puntuación está en chino e inglés. formato si falla. Como se muestra en la imagen:
El primer lugar:
Por favor agregue la descripción de la imagen.
El segundo lugar: El formato de las comas " , "
Por favor agregue la descripción de la imagen.
marcadas en la imagen es el formato chino, de lo contrario no pasará (si se soluciona el error, no habrá problema).

código experimental

# 动物识别系统
# 自定义函数,判断有无重复元素
import numpy as np
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


# 自定义函数,对已经整理好的综合数据库real_list进行最终的结果判断

def judge_last(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 == '14'):  # 有黑色条纹
            for i in list:
                if i == '24':  # 蹄类
                    print("有黑色条纹,蹄类->斑马\n")
                    print("所识别的动物为斑马")
                    return 0


        elif i == '24':  # 蹄类
            for i in list:
                if i == '13':  # 有斑点
                    for i in list:
                        if i == '15':  # 长脖
                            for i in list:
                                if i == '16':  # 长腿
                                    print("有斑点,有黑色条纹,长脖,蹄类->长颈鹿\n")
                                    print("所识别的动物为长颈鹿")
                                    return 0
        ########## Begin ##########
        # 根据右侧规则库完成信天翁的判断                


        elif(i=='20'):
            for i in list:
                if(i=='22'):
                    #print("善飞,鸟类->信天翁\n")
                    #print("")
                    print("善飞,鸟类->信天翁\n")
                    print("所识别的动物为信天翁")
                    return 0



        ########## End ##########
        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根据所给条件无法判断为何种动物")


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("请输入:")
    print(num_real)
    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("推理过程如下:")
# 遍历综合数据库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("食肉->哺乳类")
    ########## Begin ##########
    # 根据右侧规则库完成食肉类的判断
    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("有犬齿,有爪,眼盯前方->食肉类\n")
    elif i=='10':
        for i in list_real:
            if i=='21':
                if judge_repeat('24',list_real)==0:
                    list_real.append('24')
                    print("有蹄,哺乳类->蹄类\n")                        




    # 根据右侧规则库完成蹄类的判断



    ########## End ##########
    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_last(list_real)

Instrucción de prueba

La plataforma probará el código que escribas:

Entrada de prueba:

1
2
10 0Resultado esperado
:

Ingrese el número delante de la condición correspondiente:
**************************************** *** ***********
*1: Tiene pelo 2: Produce leche 3: Tiene plumas 4: No puede volar 5: Puede poner huevos* *
6: Come carne 7: Tiene dientes caninos 8: Tiene garras 9: Mirando hacia adelante 10: Pezuñas*
*11: Rumiación 12: Marrón amarillento 13: Moteado 14: Rayas negras 15: Cuello largo* *
16: Patas largas 17: Puede volar 18: Puede nadar 19: Blanco y negro 20: Bueno volando*
*21: Mamíferos 22: Aves 23: Carnívoros 24: Pezuñas*
******************************* * ***************************
**** ¡ Cuando se introduce el número 0! El programa finaliza

Ingrese: 1
Ingrese: 2
Ingrese: 10
Ingrese: 0
El requisito previo es:
cabello, leche y pezuñas
El proceso de razonamiento es el siguiente:
cabello -> mamíferos
, pezuñas, mamíferos -> pezuñas

Supongo que te gusta

Origin blog.csdn.net/qq_62127918/article/details/130420430
Recomendado
Clasificación