python编写背单词程序

一年多前初学python时写的代码,这里分享给大家。

1 功能介绍

首先运行程序,进入欢迎界面。如下图,界面是一个小方框,可以选择词库,默认是六级词库。
欢迎界面
选好之后点击左上角的关闭按钮,即可进入主页面,并显示选择的词库的剩余单词数。排版并不是很美观,读者可以尝试修改程序来美化界面。
在这里插入图片描述
写入本次计划背诵的单词数,点击“开始”按钮即可开始背诵,界面中显示单词的拼写、音标和释义。
有三个单词处理按钮,左键“太简单了!斩!”是模仿百词斩APP的说法,可以将你觉得比较简单的单词从词库中彻底删去;中间“加入难词!”会将单词加入到一个名为“难词.txt”的文本中,便于日后复习;右键“记住啦!下一个!”会将该单词加入“复习.txt”中,用户可在本次背完后进行复习,并跳转到下一个单词。
在这里插入图片描述
全部背完后会弹出提示框,点击确定后可以关闭。
在这里插入图片描述
点击复习按钮后开始复习。
在这里插入图片描述
这里的复习其实也就是一个小测试,即根据释义写出单词。将单词拼写完毕后按下回车,可显示正确答案。
在这里插入图片描述
然后点击下一个。
在这里插入图片描述
全部背完后弹出提示。
在这里插入图片描述
关闭提示后显示本次背诵情况。
在这里插入图片描述
打开程序所在的文件夹,可以看到背过的单词被放在三个txt文件里。
在这里插入图片描述
“已掌握的单词.txt”和“斩.txt”中的单词不会再次出现,其他单词在下次背诵过程还可能出现。
再次运行程序,发现单词确实少了7个。
在这里插入图片描述

2 文件准备

读者想要运行该程序,必须准备相关的文件,包括两张插图(必须为gif格式)和三个词库。
下面两张是我用到的插图。
在这里插入图片描述
在这里插入图片描述
词库必须是txt格式,txt中的文本格式为“拼写/音标/释义”,比如:
abandon/ ə’bændən/ vt.丢弃;放弃,抛弃
aboard/ ə’bɔ:d/ ad.在船(车)上;上船
absolute/ ‘æbsəlu:t/ a.绝对的;纯粹的
absolutely/ ‘æbsəlu:tli/ ad.完全地;绝对地
absorb/ əb’sɔ:b/ vt.吸收;使专心
excursion/ iks’kə:ʃən/ n.远足;短途旅行
excuse/ iks’kju:z, iks’kju:s/ vt.原谅;免除 n.借口
execute/ ‘eksikju:t/ vt.将…处死;实施
executive/ ig’zekjutiv/ a.执行的 n.执行者
exercise/ ‘eksəsaiz/ n.锻炼,训练 vi.练习
exert/ ig’zə:t/ vt.尽(力),运用
fearful/ ‘fiəful/ a.害怕的,可怕的
feasible/ ‘fi:zəbl/ a.可行的;可能的
feather/ ‘feðə/ n.羽毛;翎毛;羽状物
feature/ ‘fi:tʃə/ n.特征,特色;面貌
ʃebruary/ ‘februəri/ n.二月
federal/ ‘fedərəl/ a.联邦的;联盟的
fee/ fi:/ n.费,酬金;赏金

词库我当时是在百度文库里直接下载的。
然后把这些文件和源程序放在一个文件夹里,否则需要在程序中修改读写路径。

3 源码

用到的库有tkinter 、random、matplotlib。tkinter 主要用来设计界面和功能按键,random用来随机选取单词,matplotlib在最后画饼图的时候要用到。详细的编程思路暂时不讲了,有问题可以评论区留言。

还有我当时编程的时候变量的命名不太合理,可能比较难看懂,各位见谅了!

from tkinter import *
import random
from tkinter import messagebox

root=Tk()
root.title("欢迎使用")
group=LabelFrame(root,text='   欢迎使用,请选择词库   \n并选好后点击左上角关闭按钮',padx=10,pady=10)
group.pack(padx=10,pady=10)
LANGS=[
    ('四级词汇',1),
    ('六级词汇',2),
    ('考研词汇',3)]
v=IntVar()
v.set(2)
for lang,num in LANGS:
    b=Radiobutton(group,text=lang,variable=v,value=num)
    b.pack(anchor=W)
mainloop()
def trans(filename):
    f=open(filename,'r',encoding='utf-8')
    s=f.read()
    f.close()
    f=open("单词.txt",'w',encoding='utf-8')
    f.write(s)
    f.close()
if v.get()==1:
    trans('四级词汇.txt')
elif v.get()==2:
    trans('六级词汇.txt')
else:
    trans('考研词汇.txt')

#设置框架和背景
root=Tk()
root.title('PYTHON背单词')
root['width']=300
root['height']=400
mainframe=Frame(root)
mainframe.pack()
blank=Frame(root,height=50,width=50)
blank.pack()
photo1= PhotoImage(file = '插图一.gif')
imgLabel=Label(root,image=photo1).pack(side=LEFT)
photo2= PhotoImage(file = '插图二.gif')
imgLabel=Label(root,image=photo2).pack(side=RIGHT)

#设置变量
l=StringVar()   #l是剩余未背单词数
a1=StringVar()   #a1是单词
a2=StringVar()   #a2是音标
a3=StringVar()   #a3是词义
a4=StringVar()   #a4是复习时的词义提示
a5=StringVar()   #a5是复习时用户从键盘中输入的单词
a6=StringVar()   #a6输出测试结果
a7=StringVar()   #a7是回答错误时显示的正确结果
i=StringVar()    #i是当前背到的单词数
n=StringVar()    #n是本次计划背的单词数
N=StringVar()    #N显示当前复习到的单词数
nd=StringVar()   #nd是本次删除的单词数
ng=StringVar()   #ng是本次已掌握的单词数
nng=StringVar()  #nng是本次未掌握的的单词数

ng.set('0')      #将已掌握的单词初值设为0
nng.set('0')      #将未掌握的单词初值设为0

#定义createfile函数,首次运行时创建文件
def createfile(filename):
    try:
        f=open(filename,'r',encoding='utf-8')  #读取unicode格式的文件
        f.close()
    except:
        f=open(filename,'w',encoding='utf-8')   #写入unicode格式的文件
        f.write('')
        f.close()

#创建文件,用途从文件名可知
createfile('选取单词.txt')
createfile('复习.txt')
createfile('斩.txt')
createfile('已掌握单词.txt')
createfile('难词.txt')

#定义empty函数,清空中间文件
def empty():
    f3=open('复习.txt','w',encoding='utf-8')
    f3.write('')
    f3.close()
    f2=open('选取单词.txt','w',encoding='utf-8')
    f2.write('')
    f2.close()

#设置内部结构:

#第一行设置
Label(mainframe,text='python背单词',font=('楷体',25)).grid(column=1,row=0)

#第二行设置
Label(mainframe,text='    剩余单词数:',height=2,font=('隶书',13))\
                 .grid
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值