Python 制作英文学习词典(简易版)

本文介绍了使用Python编程实现的一个英文学习词典应用,包括添加、查询和退出功能。程序读取和写入txt格式的词典文件,利用Tkinter库构建用户界面,实现单词添加和查询的交互操作。
摘要由CSDN通过智能技术生成

文章目录

题目

制作英文学习词典。编写程序制作英文学习词典,词典有3个基本功能:添加、查询和退出。程序读取源文件路径下的txt格式词典文件,若没有就创建一个。词典文件存储方式为“英文单词 中文单词”,每行仅有一对中英释义。程序会根据用户的选择进入相应的功能模块,并显示相应的操作提示。当添加的单词已经存在时,显示“该单词已经添加到词典里”;当查询的单词不存在时,显示“字典库中未找到这个单词”。用户输入其他选项时候,提示“输入有误!”

代码

from tkinter import filedialog
import tkinter

def add_word():
    print(dict_path)

    add_word_window = tkinter.Tk()
    label1 = tkinter.Label(add_word_window, text='英语单词:')
    label1.grid(row=0, column=0)
    label2 = tkinter.Label(add_word_window, text='中文单词:')
    label2.grid(row=1, column=0)
    global eng
    global chi

    eng = tkinter.Entry(add_word_window)
    eng.grid(row=0, column=1, padx=10, pady=5)

    chi = tkinter.Entry(add_word_window)
    chi.grid(row=1, column=1, padx=10, pady=5)

    btn = tkinter.Button(add_word_window,text="添加单词", command=opera_add_word_to_file).grid(row=2, column=1, padx=10, pady=5)
    add_word_window.mainloop()

def opera_add_word_to_file():
    file_preprocessor()


    add_word_to_file_windows = tkinter.Tk()

    english = eng.get()

    if english not in words:
        chinese = chi.get()

        s = english + " " + chinese + '\n'
        #print(s)
        with open(dict_path, encoding="utf-8", mode="a") as file:
            file.write(s)

        label = tkinter.Label(add_word_to_file_windows, text='添加成功!')
        label.grid(row=0, column=0, padx=10, pady=5)
        button = tkinter.Button(add_word_to_file_windows, text='确定', command=add_word_to_file_windows.quit)
        button.grid(row=1, column=0, sticky=tkinter.E, padx=30, pady=5)
    else:
        label = tkinter.Label(add_word_to_file_windows, text='该单词已添加到词典库!')
        label.grid(row=0, column=0, padx=10, pady=5)
        button = tkinter.Button(add_word_to_file_windows, text='确定', command=add_word_to_file_windows.quit)
        button.grid(row=1, column=0, sticky=tkinter.E, padx=30, pady=5)

    add_word_to_file_windows.mainloop()

def select_file():
    global dict_path
    dict_path = ""
    dict_path = filedialog.askopenfilename()
    return dict_path

def word_search():
    word_search_ui = tkinter.Tk()
    label_eng = tkinter.Label(word_search_ui, text='英语单词:')
    label_eng.grid(row=0, column=0)
    global e2c
    e2c = tkinter.Entry(word_search_ui)
    e2c.grid(row=0, column=1, padx=10, pady=5)
    button = tkinter.Button(word_search_ui, text='确定', command=eng2chi_opera)
    button.grid(row=0, column=2, sticky=tkinter.E, padx=30, pady=5)
    word_search_ui.mainloop()

def eng2chi_opera():
    child_ui = tkinter.Tk()
    file_preprocessor()
    english = e2c.get()
    if english not in words:
        # print("字典库中未找到这个单词!")
        child_ui_tag = tkinter.Label(child_ui, text="字典库中未找到这个单词!").grid(row=0, column=0)
    else:
        # print("{}的中文释义是:{}".format(english, words[english]))
        child_ui_tag = tkinter.Label(child_ui, text=words[english]).grid(row=0, column=0)
    child_ui.mainloop()

def file_preprocessor():
    count = 0
    dict_read = open(dict_path, 'r', encoding="UTF-8")
    for line in dict_read.readlines():
        s = str(line).split()
        words[s[0]] = s[1]
        count += 1
    dict_read.close()

if __name__ == "__main__":
    global words
    global count
    words = {}
    count = 0

    main_window = tkinter.Tk()

    btn0 = tkinter.Button(main_window, text="选择文件", command=select_file).grid(row=0, column=0, sticky=tkinter.E, padx=30, pady=5)
    btn1 = tkinter.Button(main_window, text="添加", command=add_word).grid(row=0, column=1, sticky=tkinter.E, padx=30, pady=5)
    btn2 = tkinter.Button(main_window, text="查询", command=word_search).grid(row=0, column=2, sticky=tkinter.E, padx=30, pady=5)
    btn3 = tkinter.Button(main_window, text="退出", command=main_window.quit).grid(row=0, column=3, sticky=tkinter.E, padx=30, pady=5)

    main_window.mainloop()

运行后效果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值