Python制作英文学习词典

编写程序制作英文学习词典,实现3个基本功能。添加查询退出

以下是该词典的Python代码

dict = {}
digits = '0123456789'
path = 'dict.txt'

def readFile(path, arg):

    try:
        file = open(path,arg,encoding = "utf-8")
    except:
        file = open(path,'w',encoding= "utf-8")

    return file
def readWords():
    file = readFile(path, 'r')
    while True:
        line = file.readline()
        if not line:
            break
        word = line.split(' ',2)
        dict[word[0]] = word[1][:-1]
    file.close()

def writeFile(word,dsp):
    file = readFile(path,'a')
    file.write('{} {}\n'.format(word, dsp))
    file.close()

def modifyFile(word, dsp):
    file = readFile(path,'r')
    line = file.readlines()
    flen = len(line) -1
    for i in range(flen):
        if word in line[i]:
            file.close()
            line[i] = '{} {}\n'.format(word, dsp)
            file = readFile(path,'w')
            file.writelines(line)
            break
    file.close()

def editMode():
    print('*'*50)
    print('*'*50)
    while True:
        word = input("(按数字键退出)请输入想添加或修改的单词")
        if word in digits:
            print('*'*50)
            print('*'*50)
            return
        try:
            print("该单词已经存在,当前解释是:{}".format(dict[word]))
        except:
            print('您添加的是一个新单词')
        print("-----------------------")
        description = input("输入解释:\n")
        try:
            dict[word] += ',%s'%description
            modifyFile(word, dict[word])
        except KeyError:
            dict[word] = '%s'%description
            writeFile(word,dict[word])
        print('----------------添加完成---------------')

def searchMode():
    print('*'*50)
    print('*'*50)
    while True:
        word = input("(按数字键退出)想查的单词:")
        if word in digits:
            print('*'*50)
            print('*'*50)
            return
        print("-----------------------------------")
        try:
            print(dict[word])
        except KeyError:
            print('对不起,这个单词未收录')

        print("------------------------------------------")

def interface():
    readWords()
    def switch(option):
        funcdic={
            1:lambda :searchMode(),
            2:lambda :editMode(),
            3:lambda :exit()
        }
        return funcdic[option]()
    while True:
        print("-------------欢迎使用-------------")
        print("1.查询单词\n2.添加单词\n3.退出\n")
        option =int(input("请输入选择:"))
        switch(option)

interface()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值