使用Python制作学习英语软件

article/2025/11/10 1:21:42

前言:
由于Python考试临近,加上平时要学习英语,突发奇想制作一款和手机上app那样的记单词的简单软件,顺便复习一下Python。

步骤:

  1. 编辑一个保存单词的txt文档
  2. 读取txt文件,制作成字典
  3. 使用tkinter制作界面
  4. 使用pyinstaller打包成exe程序文件

文件目录
文件链接

-StudyEnglish--Word---Unit20.txt---Unit19.txt--config.py--GetWord.py--StudyEnglish.py

1.编辑一个保存单词的txt文档
在这里插入图片描述
格式如下,单词和词义用’,'分开,不同词义用;分开。

2.读取txt文件,制作成字典
使用os库读取txt文件
代码如下

import os
import Config as cfdef get_word():word_dic = {}word_list = []for root,dirs,files in os.walk(cf.Word_path):#访问路径下所有文件,然后遍历for file in files:#open用read模式打开文件with open(root+'/'+file,'r',encoding='UTF-8') as w:#读txt文件每行并遍历words=w.readlines()for word in words:#使用','进行分割w_m=word.split(',')w=w_m[0]m=w_m[1][:-1]#保存进字典,列表word_dic[w]=mword_dic[m]=wword_list.append(m)word_list.append(w)return word_dic,word_list

3.制作tkinter制作界面
界面如下,因为对tkinter掌握不多,所以界面比较简陋hhh,后期可能会完善。
在这里插入图片描述
代码如下:

from tkinter import *
from GetWord import get_word
import random
import Config as cf
import tkinter.messagebox as box##使用random随机打乱数据
word_dir, word_list = get_word()
num = random.randint(0,len(word_list))
random.seed(num)
data=random.randint(0,len(word_list))root=Tk()
root['width']=500
root['height']=500
root.resizable(False,False)##创建文本标签
labelName1=Label(root,text='开卷(卷第三声)!!!',font=('宋体',38))
labelName1.place(x=0,y=0,width=500,height=100)
labelName2=Label(root,text='题目',font=('宋体',38))
labelName2.place(x=0,y=100,width=100,height=100)
labelName3=Label(root,text='答案',font=('宋体',38))
labelName3.place(x=0,y=200,width=100,height=100)##创建题目栏,设置为只读
titlevalue1=StringVar(root,value='')
entrytitle1=Entry(root,textvariable=titlevalue1,state='readonly',font=('宋体',38))
entrytitle1.place(x=200,y=100,width=400,height=100)
titlevalue1.set(word_list[data])##创建答题栏,设置为只读
titlevalue2=StringVar(root,value='')
entrytitle2=Entry(root,textvariable=titlevalue2,font=('宋体',38))
entrytitle2.place(x=200,y=200,width=400,height=100)##创建评价指南文本标签
losslabel=Label(root,text='错误率',font=('宋体',30))
losslabel.place(x=0,y=300,width=125,height=100)acclabel=Label(root,text='准确率',font=('宋体',30))
acclabel.place(x=250,y=300,width=125,height=100)##创建评价指南,设置为只读
lossvalue=StringVar(root,value='')
entryloss=Entry(root,textvariable=lossvalue,state='readonly',font=('宋体',38))
entryloss.place(x=125,y=300,width=125,height=100)
lossvalue.set(cf.loss)accvalue=StringVar(root,value='')
entryacc=Entry(root,textvariable=accvalue,state='readonly',font=('宋体',38))
entryacc.place(x=375,y=300,width=125,height=100)
accvalue.set(cf.acc)##答题按键触发函数
def judge():global dataresult = entrytitle2.get()cf.num += 1if result in word_dir.get(word_list[data]):cf.accnum += 1else:cf.lossnum += 1root1 = Tk()root1['width'] = 300root1['height'] = 100root1.resizable(False, False)resultName =Label(root1, text='%s:%s'%(word_list[data],word_dir.get(word_list[data])), font=('宋体', 20))resultName.place(x=0, y=0, width=300, height=100)titlevalue2.set('')cf.loss = cf.lossnum / cf.numcf.acc = cf.accnum / cf.numdata = random.randint(0, len(word_list))titlevalue1.set(word_list[data])lossvalue.set(cf.loss)accvalue.set(cf.acc)##保存单词触发函数
def set_data():root2=Tk()root2['width']=300root2['height']=300newword=StringVar(root2,value='')wordentry=Entry(root2,textvariable=newword, font=(15))wordentry.place(x=0,y=0,width=300,height=100)#添加单词函数def add_word():word = newword.get()if ',' not in word:box.showerror(title='',message='格式错误')elif ',' in word:word +='\n'with open('./Word/Unit19.txt','a',encoding='UTF-8') as w:w.writelines(word)w.close()newword.set('')else:passlaebl = Label(root2,text='格式:ABC,英文逗号', font=('宋体', 25))laebl.place(x=0,y=200,width=300,height=100)okkey = Button(root2, text='添加', command=add_word, font=('宋体', 38))okkey.place(x=0, y=100, width=300, height=100)##答题按键
okkey=Button(root,text='确认',command=judge,font=('宋体',38))
okkey.place(x=0,y=400,width=250,height=100)
##添加单词按键
set=Button(root,text='添加单词',command=set_data,font=('宋体',38))
set.place(x=250,y=400,width=250,height=100)root.mainloop()

4.使用pyinstaller打包成exe程序文件

安装pyinstaller

pip install Pyinstaller

装不了可以换源。
在StudyEnglish打开终端
在这里插入图片描述
终端输入

pyinstaller -F -w StudyEnglish.py

这是打包好的目录
在这里插入图片描述
在dist文件夹中有StudyEnglish.exe文件,但是,由于我在StudyEnglish.py文件中使用了其他文件,如果直接打开exe文件会报错,所以要把config.py和GetWord.py还有Word移动到dist文件中,这样才能正常使用。
这是可正常使用的文件夹。
在这里插入图片描述
这样发送给别人也能正常使用。


http://chatgpt.dhexx.cn/article/bh67QvQ1.shtml

相关文章

外贸沟通中,老外最喜欢的聊天工具你了解?各国客户最常用的即时聊天APP整理及配套8个英语类工具推荐

作为外贸人,不要一味的跟客人谈生意,当然目的是这个。私下的问候,关心,沟通也是不可或缺的。很多老外不喜欢来回发邮件,那样速度慢,还得来回查看,因此很多在线的聊天工具就备受欢迎。 下面给大家…

计算机专业3分钟演讲能讲什么,面试三分钟演讲稿范文

面试三分钟演讲稿范文 20XX年4月26日至28日,我在华南师范大学网络学院参加了全国高校教师网络培训——同济大学龚沛曾教授团队主持的《大学计算机基础》全国精品课程网络培训,受益匪浅。龚沛曾教授讲授的《大学计算机基础》之计算机基础课程体系、计算机…

记一次技术分享演讲

**丨**版权说明 : 《记一次技术分享演讲》于当前CSDN博客和乘月网属同一原创,转载请说明出处,谢谢。 本文仅谈心得,不谈技术 谈谈为什么写心得 笔者自入学到现在工作已有20余载,虽然沉淀的文笔贫平,可也写过数篇作文&…

俞敏洪一分钟励志演讲稿

俞敏洪一分钟励志演讲稿 人的生活方式有两种, 第一种方式是像草一样活着, 你尽管活着,每年还在成长, 但是你毕竟是一棵草, 你吸收雨露阳光, 但是长不大, 人们可以踩过你, 但是人们不…

计算机基本知识3分钟演讲稿,3分钟演讲稿范文(精选3篇)

3分钟演讲稿范文(精选3篇) 演讲稿要求内容充实,条理清楚,重点突出。在社会一步步向前发展的今天,能够利用到演讲稿的场合越来越多,那么你有了解过演讲稿吗?下面是小编精心整理的3分钟演讲稿范文(精选3篇),希…

Android4.3 Google Pinyin输入法UI定制

Android4.3 Google Pinyin输入法UI定制 先来看原版输入法的效果如下: 定制后的效果如下: SystemServer会启动InputMethodManagerService,在InputMethodManagerService中会启动action为"android.view.InputMethod"的Service&#x…

学习双拼必看:双拼输入法的心得以及快速入门办法

1.简单介绍一下双拼 2.总共18种双拼方案 3.15种双拼方案的具体映射 4.顺便提一下双拼口诀的事情 5.总结不同平台选择的方案 双拼(也称双打)是一种建立在拼音输入法基础上的输入方法,可视为全拼的一种改进,它通过将汉语拼音中每…

Qt编写可换肤的中文双拼汉字输入法

新版本: https://qtchina.blog.csdn.net/article/details/103945421 时间过得真快,不知不觉已到2015年,农历春节一眨眼就过去了,端正状态收拾心情整装待发出发。 曾经有段时间,我有一个很执着的梦想,我要…

Android仿微信聊天UI之处理软键盘抬升问题

前言,效果图 本文介绍如何解决软键盘遮挡问题,以下是仿微信聊天界面所制作的效果图: 一、ViewTreeObserver ViewTreeObserver,很明显通过名字就可以了解到它是View树的观察者。该类不能被实例化,但可以通过视图获取&…

解决手机端微信公众号内input输入框获取焦点后,底部导航栏显示在输入法软键盘上面的问题

今天遇到在微信公众号中打开网站,input 输入框和textarea输入框获取焦点后,弹出输入法键盘,将底部的导航栏”顶到“输入法键盘上面的问题,看着非常shit! 直接上代码看效果 var clientHeight document.documentElement.clientHei…

教你在Windows自带的微软拼音输入法中用上小鹤双拼方案

微软拼音输入法是Windows 10操作系统中自带的输入法,虽然很多人在拿到一个新系统之后就安装一个新的输入法,比如搜狗输入法、手心输入法。但是很多人不知道最新版本的windows操作系统自带的微软拼音输入法,已经不像是以前windows 7操作系统的…

不甘心只做输入工具,搜狗输入法上线AI助手,提供智能服务

8月19日搜狗输入法上线了新功能——智能汪仔,在输入法中引入了AI助手,这是搜狗输入法继今年5月推出“语音变声功能”后又一个AI落地产品。 有了智能汪仔AI助手的加持后,搜狗输入法能够在不同的聊天场景,提供丰富多样的表达方式从…

524MB的微信输入法:没广告 你会用吗

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 来源丨 扩展迷EXTFANS https://mp.weixin.qq.com/s/asRqVjbn0lf8BmDnGY9Zig 相信很多小伙伴都有过这样的经历:和朋友聊天讨论某件东西,打开其…

Android之仿微信QQ聊天顶起输入法不顶起标题栏

在这记录一下输入法弹出的一系列问题,有的输入法弹出就把整个布局弹上去,有的输入法弹出布局不会有变化,有的输入法弹出遮盖输入框等等问题,网上也有很多说加着加那的,但是看一下都不是很完整,解决不了所有…

刚才发现微软拼音-简洁2010是目前比较适合程序员的输入法

微软拼音-简洁2010,在中文状态下,按 //,打出来就是 // 可是 百度输入法,QQ输入法、搜狗输入法 在中文状态下,按 //,打出来的都是 、、 这样写注释就麻烦了,还得切换成英文状态。 微软拼音-新体…

Qt5软键盘实现中文拼音输入法

一、序 基于Qt实现的虚拟键盘实现输入法在网上所有资料看来,几乎都是基于生成的中文汉字数据库实现的方法,不够灵活,不够智能。 二、实现 1、拼音输入法的库 我们采用的安卓底层的谷歌拼音输入法,在Qt5.7之后,Qt官方…

实现ucGUI界面中的拼音汉字输入法(T9)

实现ucGUI界面中的汉字输入法 ucGUI版本:3.94 上个图片 代码下载地址: http://download.csdn.net/detail/jhting/7034669 很久了,可能直接编译不过,不过你了解的话,小小改动就OK了 码表是在网上找到的. 主要三个…

微信小程序实现调用百度文心一言接口API(可直接运行代码)

1、首先得获得你自己的API_key 先进入文心千帆大模型平台,然后点击左边一列的“应用接入”,然后点创建应用,这时你就获得了API_key了。 2、第二部就直接上这段代码就ok,不过记得要换成自己的API_key和Secret_key。 Page({onLoad:…

python客户端实现利用第三方smtp发邮件

上面采用的是qq邮箱,需要登录qq邮箱打开pop3 参考资料1(20条消息) Python使用SMTP协议实现邮件发送(含明文/SSL加密/TLS加密)_dev_zyx的博客-CSDN博客 参考资料2(20条消息) python实现smtp协议发送邮件_Clarence-CSDN博客

福音:IDEA、VSCODE神级插件Bito

文章目录 Bito是什么?IDEA环境安装注册使用 VSCODE环境疑难问题后叙 Bito是什么? Bito是一款在编程软件中使用的插件,由ChatGPT团队开发,它是ChatGPT团队为了提高开发效率而开发的一款工具。 Bito的AI帮助开发人员极大地提高了其…