一个简单的字典应用综合性实验,通过该实验可以熟悉Python中的字典、文件读取和写入等操作。
实验要求:
读取一个文本文件,将其中的单词和对应的释义存储到一个字典中。
提供一个命令行界面,可以接收用户输入的单词,输出该单词的释义。
如果用户输入的单词不存在于字典中,提示用户该单词不存在,并询问是否需要添加该单词及其释义到字典中。
如果用户选择添加新单词,让用户输入该单词和对应的释义,并将其添加到字典中,并将字典保存到文件中。
实验步骤:
(1)准备一个文本文件,例如"words.txt",其中每行包含一个单词和对应的释义,中间用空格分隔;
(2)定义一个read_words_file()函数用于读取文件,并将其中的单词和对应的释义存储到字典中;
(3)定义一个lookup_word()函数用于输出单词的释义;
(4) 定义一个add_word()函数用于添加新单词;
(5)定义一个save_words_file()函数用于保存字典到文件中;
(6) 在主程序中实现命令行界面。
该程序首先读取文件中的单词和对应的释义,并进入一个循环,接收用户输入的单词,并调用lookup_word函数输出其对应的释义。如果该单词不存在于字典中,则询问用户是否添加该单词到字典中,如果用户选择添加,则调用add_word函数添加该单词到字典中,并将字典保存到文件中。
综上,该程序实现了一个简单的字典应用,可以通过命令行界面查询和添加单词及其释义。
先在源文件创建一个words.txt文件。
import os# 定义文件名words_file_name = "words.txt"# 定义字典word_dict = {}def read_words_file(): """ 读取文件,并将其中的单词和对应的释义存储到字典中 """ # 判断文件是否存在 if os.path.exists(words_file_name): # 读取文件 with open(words_file_name, "r") as f: # 循环读取每一行 for line in f: # 去除空格和换行符 line = line.strip() # 分割出单词和释义 word, meaning = line.split(" ") # 存储到字典中 word_dict[word] = meaningdef lookup_word(word): """ 输出单词的释义 """ # 如果单词存在于字典中 if word in word_dict: # 输出释义 print("{}的释义是:{}".format(word, word_dict[word])) # 如果单词不存在于字典中 else: # 提示并询问用户是否添加该单词的释义 add = input("字典中不存在该单词,是否添加?(yes或no)") # 如果用户需要添加 if add == "yes": add_word(word) else: print("退出查询")def add_word(word): """ 添加新单词 """ # 获取新单词的释义 meaning = input("请输入{}的释义:".format(word)) # 新单词存储到字典中 word_dict[word] = meaning # 保存到文件中 save_words_file() print("添加成功")def save_words_file(): """ 将字典保存到文件中 """ with open(words_file_name, "w") as f: for word, meaning in word_dict.items(): f.write(word + " " + meaning + "n")def main(): # 读取文件 read_words_file() # 进入循环,接收用户输入的单词,并调用lookup_word函数输出其对应的释义 while True: word = input("请输入要查询的单词:") # 调用查询函数 lookup_word(word)if __name__ == '__main__': main()