产生式系统实验程序-人工智能实验

上机任务 1. 产生式系统实验程序说明文档

一、运行环境

操作系统:Windows10

开发软件:Anaconda3

Python 版本:Python 3 及以上

所需要的依赖包:无

二、操作步骤

在命令行或 Anaconda3 等集成开发环境中运行程序 production.py。按照提示输入相应的条

件,根据知识库推理得出相应的结论。

  • 结果展示

产生式系统实验程序-人工智能实验_第1张图片

产生式系统实验程序-人工智能实验_第2张图片

 

 

代码:

# 特征数组 yinxipeng 201906020103

characteristic = ["毛发","奶","羽毛","会飞","吃肉","犬齿","有爪","眼盯前方","有蹄",

                  "反刍动物","哺乳动物","鸟","善飞","信天翁","食肉动物","黄褐色","暗斑点",

                  "黑色条纹","长腿","长脖子","有蹄类动物","虎","金钱豹","长颈鹿","斑马",

                  "不会飞","黑白二色","会游泳","鸵鸟","企鹅","下蛋"]

# 描述数组 存放推理出和原有的特征

describe = []

print("请输入一共有多少个特征:")

a=int(input())

print("请输入特征空格分开:")

for i in range (0,a):

    S = input()

    describe.append(S)

def search(describe):

    for i in range(len(describe)):

        if(describe[i]=="毛发" or describe[i]=="奶"):

            print(describe[i]+"-->"+"哺乳动物")

            if("哺乳动物" not in describe):

                describe.append("哺乳动物")

        if(describe[i]=="羽毛"):

            print(describe[i]+"-->"+"鸟")

            if("鸟" not in describe):

                describe.append("鸟")

        if(describe[i] == "吃肉"):

            print(describe[i]+"-->"+"食肉动物")

            if ("食肉动物" not in describe):

                describe.append("食肉动物")

    if("会飞" in describe and "下蛋" in describe):

        print("会飞,下蛋--->鸟")

        if("鸟" not in describe):

            describe.append("鸟")

    if("犬齿" in describe and "有爪" in describe and "眼盯前方" in describe):

        print("犬齿,有爪,眼盯前方--->食肉动物")

        if("食肉动物" not in describe):

            describe.append("食肉动物")

    if("哺乳动物" in describe and "有蹄" in describe):

        print("哺乳动物,有蹄--->有蹄类动物")

        if("有蹄类动物" not in describe):

            describe.append("有蹄类动物")

    if("哺乳动物" in describe and "反刍动物" in describe):

        print("哺乳动物,反刍动物--->有蹄类动物")

        if("有蹄类动物" not in describe):

            describe.append("有蹄类动物")

    if("哺乳动物" in describe and "黄褐色" in describe and "食肉动物" in describe):

        if("暗斑点" in describe):

            print("哺乳动物,食肉动物,黄褐色,暗斑点--->金钱豹")

            if("金钱豹" not in describe):

                describe.append("金钱豹")

        if ("黑色条纹" in describe):

            print("哺乳动物,食肉动物,黄褐色,黑色条纹--->金钱豹")

            if ("虎" not in describe):

                describe.append("虎")

    if("有蹄类动物" in describe and "长脖子" in describe and "长腿" in describe and "暗斑点" in describe):

        print("有蹄类动物,长脖子,长腿,暗斑点--->长颈鹿")

        if("长颈鹿" not in describe):

            describe.append("长颈鹿")

    if("有蹄类动物" in describe and "黑色条纹" in describe):

        print("有蹄类动物,黑色条纹--->斑马")

        if("斑马" not in describe):

            describe.append("斑马")



    if ("鸟" in describe and "长脖子" in describe and "长腿" in describe and "不会飞" in describe and "黑白二色" in describe):

        print("鸟,长脖子,长腿,不会飞,黑白二色--->鸵鸟")

        if ("鸵鸟" not in describe):

            describe.append("鸵鸟")

    if ("鸟" in describe and "会游泳" in describe  and "不会飞" in describe and "黑白二色" in describe):

        print("鸟,会游泳,不会飞,黑白二色--->企鹅")

        if ("企鹅" not in describe):

            describe.append("企鹅")

    if("鸟" in describe and "善飞" in describe):

        print("鸟,善飞--->信天翁")

        if("信天翁" not in describe):

            describe.append("信天翁")

def result(describe):

    for i in range(len(describe)):

        if(describe[i]=="虎" or describe[i]=="金钱豹" or describe[i]=="斑马"

            or describe[i]=="长颈鹿" or describe[i]=="鸵鸟" or describe[i]=="企鹅" or describe[i]=="信天翁"):

            print("该动物是:"+describe[i])

    if("虎" not in describe and "金钱豹" not in describe and "斑马" not in describe

            and "长颈鹿" not in describe and "鸵鸟" not in describe

            and "企鹅" not in describe and "信天翁" not in describe):

        print("无法判断是什么动物!")

print()

print("提取特征:")

print(describe)

print()

print("推理过程:")

search(describe)

print()

print("结论:")

result(describe)



你可能感兴趣的:(python,人工智能)