现有一文本,文本内含有部分疾病症状以及其对应所需要的中药方名和配比成分编写程序根据用户输入的疾病症状输出治疗该疾病所需要的中药方名以及其配比成分,若用户输入的疾病症状不在文本内则报错该疾病症状录入。
时间: 2024-02-25 20:54:35 浏览: 125
您好,根据您的问题,需要进行文本匹配和数据查询。可以采用以下步骤:
1. 将文本中的症状和对应中药方名以及配比成分提取出来,并存储到数据库或者字典中。
2. 用户输入疾病症状,程序从数据中查询是否存在该症状,如果存在,则输出对应的中药方名和配比成分;如果不存在,则提示用户输入疾病症状。
以下是一个简单的示例程序:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('medicine.db')
cursor = conn.cursor()
# 创建症状和中药方名的映射表
cursor.execute('''CREATE TABLE IF NOT EXISTS medicine
(symptom TEXT PRIMARY KEY,
formula TEXT,
component TEXT)''')
# 插入数据
cursor.execute("INSERT INTO medicine VALUES ('发热', '清热解毒汤', '黄芩 9g, 黄连 6g, 贝母 3g')")
cursor.execute("INSERT INTO medicine VALUES ('头痛', '桂枝汤', '桂枝 9g, 甘草 6g, 生姜 3g')")
# 提交更改
conn.commit()
# 查询症状对应的中药方名和配比成分
def query_medicine(symptom):
cursor.execute("SELECT formula, component FROM medicine WHERE symptom=?", (symptom,))
result = cursor.fetchone()
if result:
return result
else:
return None
# 用户输入症状,查询对应的中药方名和配比成分
while True:
symptom = input('请输入疾病症状:')
medicine = query_medicine(symptom)
if medicine:
print('治疗该疾病所需要的中药方名为:', medicine[0])
print('配比成分为:', medicine[1])
else:
print('该疾病症状录入')
cursor.execute("INSERT INTO medicine (symptom) VALUES (?)", (symptom,))
conn.commit()
```
以上程序是基于SQLite数据库的,您也可以使用其他的数据库或者数据结构进行存储。
阅读全文