实验目的:

通过该实验,使学生掌握函数、类、文件存储的使用方式,能够熟练运用列表、字典、文件来进行数据存储处理,并掌握格式化输出的相关方法。

实验要求:

1、建立初始化的英文单词字典内容,每个单词要有对应的中文解释。如:make: 使得;布置;准备;整理;制造(等)。

2、实现字典的增加(可以通过程序实现单词及中文解释添加)、删除(通过程序实现单词的删除)、查找(通过程序实现单词的查找,要有单词联想功能,比如用户只输入了“simpl”,要能够返回“simple”及“simply”两个单词的内容(如果字典里有的话))、修改(通过程序实现单词内容和解释的修改)四个功能。

3、可以使用json、txt、数据库或其他文件格式来进行存取字典内容。

4、单词及单词解释显示要规范。

实验思路

1.txt文件存储字典,输出该txt文件存储的字典内容

2.对txt文件进行增删改查

3.字典的增加单词功能:用户输入想要添加的单词以及其解释,然后添加到txt文件中。

4.字典的删除单词功能:用户输入想要删除的单词word,然后遍历txt文件的每行,对每行进行‘:’分解(v = line.strip().split(':')),如果v[0]==word,该行不写入txt文件中,其他按原样行写入该txt文件中。

5.字典的修改单词功能:用户输入想要修改的单词word1,以及修改后的word2,value2。然后遍历txt文件的每行,对每行进行‘:’分解(v = line.strip().split(':')),如果v[0]==word1,fw.write(word2 + ':' + value2 + '\n')写入txt文件中,其他行按原样写入该txt文件中。

6.字典的查找联想单词功能:用户输入想要查找的单词word,然后遍历txt文件的每行,对每行进行‘:’分解(v = line.strip().split(':')),如果word in v[0],输出v[0]+":"+v[1]。

实验代码

#输出该txt文件的内容
def read_dict():
    fr = open('dic.txt', 'r')
    dic = {}
    keys = []  # 用来存储读取的顺序
    for line in fr:
        v = line.strip().split(':')
        dic[v[0]] = v[1]
        keys.append(v[0])
    fr.close()
    print("该txt文件的字典内容为:")
    for i in dic:
        print(i+":"+dic[i])
    print("")

#在字典中增加单词word以及其解释value
def add(word,value):
    fw = open('dic.txt', 'a')
    fw.write(word + ':' + value + '\n')
    fw.close()
    read_dict()

#在字典中删除单词word
def delete(word):
    with open('dic.txt', 'r') as fr:
        lines=fr.readlines()
    with open('dic.txt', 'w') as fw:
        for line in lines:
            v = line.strip().split(':')
            if word == v[0]:
                continue
            fw.write(line)
    fr.close()
    fw.close()
    read_dict()

#实现对单词word1的单词内容修改为word2以及其解释修改为value2
def alter(word1,word2,value2):
    with open('dic.txt', 'r') as fr:
        lines=fr.readlines()
    with open('dic.txt', 'w') as fw:
        for line in lines:
            v = line.strip().split(':')
            if word1 == v[0]:
                fw.write(word2 + ':' + value2 + '\n')
            else:
                fw.write(line)
    fr.close()
    fw.close()
    read_dict()

#查找联想单词word的解释
def search(word):
    fr = open('dic.txt', 'r')
    for line in fr:
        v = line.strip().split(':')
        if word in v[0]:
            print(v[0]+":"+v[1])
    fr.close()

def main():
    read_dict()
    print("对该字典进行增加操作,请输入您想增加的单词以及其解释")
    wrd=input()
    val=input()
    add(wrd,val)
    print("对该字典进行删除操作,请输入您想删除的单词")
    wrd = input()
    delete(wrd)
    print("对该字典进行修改操作,请输入您想修改的单词,以及修改后的单词内容以及其解释")
    wrd1 = input()
    wrd2= input()
    val2= input()
    alter(wrd1,wrd2,val2)
    print("对该字典进行查找操作,请输入您想查找的单词")
    wrd=input()
    search(wrd)

main()

实验结果

最初始txt文件存储的字典内容:

python字典保存至本地 python 保存字典到txt_txt文件

python字典保存至本地 python 保存字典到txt_txt文件_02

(1)进行增加单词操作

python字典保存至本地 python 保存字典到txt_增删改查_03

python字典保存至本地 python 保存字典到txt_数据存储_04

(2)进行删除单词操作

python字典保存至本地 python 保存字典到txt_数据存储_05

python字典保存至本地 python 保存字典到txt_数据存储_06

(3)进行修改单词操作

python字典保存至本地 python 保存字典到txt_数据存储_07

python字典保存至本地 python 保存字典到txt_python字典保存至本地_08

(4)进行查找单词操作

python字典保存至本地 python 保存字典到txt_txt文件_09