利用ChatGPT辅助编写程序——问答系统
本文将介绍如何使用Python和Tkinter库编写一个带有问题和答案数据的简单问答系统,并利用ChatGPT辅助编写。
准备工作
在编写代码之前,需要准备一个包含问题和答案的txt文件,每个问题和答案占两行,且问题和答案之间没有其他内容。例如:
1 | 什么是Python? |
读取txt文件中的数据
首先,我们需要定义一个函数,用于读取txt文件中的数据。在该函数中,我们使用with open()
语句打开txt文件,使用read()
函数读取文件内容,并使用splitlines()
函数将内容按行分割为一个列表。然后,我们遍历这个列表,将每两行作为一组数据,将问题和答案分别存储为一个字典,最后将这个字典返回。
1 | import re |
获取问题对应的答案
接下来,我们需要定义一个函数,用于获取问题对应的答案。在该函数中,我们首先将输入的问题去除空格并转换为小写字母,并使用[:100]
截取前100个字符,以便匹配速度更快。然后,我们使用正则表达式将问题中的空格替换为.*
,这样就可以进行关键词匹配了。最后,我们遍历存储问题和答案的字典,使用re.search()
函数匹配关键词,如果匹配成功,则返回对应的答案。
1 | def get_answer(question, question_dict): |
创建GUI界面
对于 GUI 的创建,我们创建了一个标签对象,用于显示问题,一个输入框对象,用于输入问题,一个按钮对象,用于获取答案,以及一个标签对象,用于显示答案。接下来,我们需要将这些对象放置在窗口中,同时还需要对这些对象进行一些设置。
1 | # 创建一个标签对象,用于显示问题 |
在这里,我们通过 grid
函数将每个对象放置在窗口的指定行和列位置。padx
和 pady
参数用于设置对象的水平和垂直间距。columnspan
参数用于将答案标签跨越多列,使其占据整个窗口的宽度。
为了使窗口始终处于顶部,我们还使用了 attributes
函数,并将 '-topmost'
参数设置为 True
。最后,我们使用 mainloop
函数进入消息循环,等待用户输入问题。
总结
在本文中,我们使用 Python 和 Tkinter 库编写了一个问答系统,并使用 ChatGPT 辅助开发这个系统。我们使用了一个 GUI,包括标签、输入框、按钮和标签等对象,用于输入问题、获取答案和显示答案。我们还实现了一个函数,用于读取 txt 文件中的数据,并实现了一个函数,用于获取问题对应的答案。最后,我们进入了消息循环,等待用户输入问题并获取答案。
在实际开发中,我们可以进一步优化这个问答系统,例如使用更先进的自然语言处理技术,支持多语言输入和输出,提供更加友好的界面等。
注意:ChatGPT一般不会一次性完成你想要的程序效果,必须学会进行有效的提问,让AI能够准确get你的需求
完整程序
1 | # 导入Tkinter、re模块 |