用户:碳烤小火龙查看:8 回复:12 评论:8 创建时间:2019-01-05T18:55:23
咳咳,为了让这个帖子符合分类化,所以之前的教程贴都删掉了,现在是全部发送到python 乐园里。
废话不多说了,让我们来看看这个不过30 行就可以简易用python制作的听写工具吧!
这次的软件程序的开发采用的工具是 python 3。
这此次的开发还需要另外导入两个个工具 : pyttsx 3库,其作用为把文本转成语音。
现在在命令行(cmd)里输入指令:pip install pyttsx3
在安装完pyttsx3后也要安装对应版本的pywin32,如果已经安装过了,则无需再次安装。
pywin32 安装方法:在命令行里输入:python -m pip install pypiwin32
即可。
还有一个工具是 easygui 这个的作用相对前者重要性不是这么大,它的作用是创立GUI 也就是对话框,简单说就是美化,但还是推荐大家使用。
下载:http://easygui.sourceforge.net/
下载完毕后吧里面一个叫easygui.py,或者整个(反正我是只把它放了进去)放入一个叫python3.6文件里(就是你python的原地址)一个叫Lib的文件就可以了
接下来,点击python的一个编译器(Python有自带的编译器,用它或者编程猫的就可以了)
提示:如果你是用编程猫的编辑器来编写的话可能无法在上面运行,必须要保存之后再本地里运行(因为编程猫上没有上面的两个库)
先来看下最后软件运行后的结果。
这是运行后的结果,软件界面展示的结果一目了然。首先是系统提示输入要听写的单词数量,接着是输入要听写的单词的具体内容。随后系统就会根据这些内容进行报音,用户输入对应单词后,就会得到一个判定结果。从而完成整个听写的过程。接下来让我们一起看下代
接下来我将对这些代码进行详细的解释:
首先是导入两个库,分别是pyttsx3和 easygui
文本转语言大致可以理解为把你输入要进行听写的单词朗读出来,用于进行听写的发音。
然后另一个库easygui则是一个GUI。GUI的意思是图形化界面,不然的话你的最终效果会在文本上运行,没办法创立出界面。
第三行代码是使用这个库的发音,把它变成一个变量,这样更方便使用。
再来看接下来的这些代码:
good = 0
No = 0
K = -1
这段是初始化变量。
变量是一个可以存储值的字母或名称。当你编程时,可使用变量来存储数字,例如建筑物的高度,或者存储单词,例如人的名字。简单地说,可使用变量表示程序所需的任何信息。你可能会问:“既然我可以使用信息,为什么要用变量?”因为变量可以随着程序的运行而改变其表示的值。例如,你可以写个程序来跟踪罐子里糖豆的数目。因为糖是要被吃掉的,所以罐里糖豆的数目可能会随着时间的推移而改变。你可以使用一个变量来表示不同时间的糖豆数目,而无需在每次糖豆数目变化时重新修改程序。
让我们继续往下看:
n = easygui.,integerbox(“请输入听写单词的数量”)
通过这一句代码,建立出了如图一所示的界面。
c = []
这一句代码是为了初始化链表。你可以将链表看成是一个抽屉,我们可以先将之后要用到的东西先放进去,在需要的时候才从抽屉里面拿出来。
看向下一段代码:
For x in range (n):
b = easygui.enterbox(“输入要听写的内容”)
c = append(b)
首先定义了一个循环,循环的次数是n 次。还记得吗?n就是你所输入的要听写的单词的数量。由此来决定了发出询问“请输入要听写的单词”的次数。接着就用到了我们前面定义好的链表c,用来存放用户输入的要听写的内容。
下一段代码:
For x in range (n):
k = k+1
World = c[k]
Spaker.say (world)
Spaker.runAndwaie()
Answer = easygui.enterbox (“请输入刚刚听写的单词”)
if answer == c[k]:
Easygui.msgbox(“正确”)
good=good +1
Else:
Easygui.msgbox(“错误”)
no =no +1
这段代码的作用是开始听写,系统进行逐个单词的报音。
K = k+1,这一句的作用是每进行一次单词报音后,都让k的数值+1。
Word = c[k],接着把下一个要听写的单词从c链表里提出来,赋值给变量Word。
举例来说,假如c链表里储存的单词依次为one,two,three,four...
K此时的值为0,World = c [0],就是提出链表c的第一项;Spaker.say (word),Spaker.runAndwaie()报出c链表里的第一个单词one;然后用户根据界面提示“请输入刚刚听写的单词”进行输入,接着来到if语句,if answer == c[k],Easygui.msgbox(“正确”),如果你输入的答案与c[0],也就是与one相等,就会在界面上显示正确,同时good=good +1,对你听写正确的单词数进行加一计数。Else:Easygui.msgbox(“错误”),no =no +1。反之则显示错误,同时对你听写错误的单词数进行加一计数。
此时还没有完成n次循环,所以在下一轮中,k的数值+1,k=1,word =c [1]。进行下一个单词two的听写,以此类推,n次循环后,最终完成所有单词的听写 。
本次教程到此结束,谢谢观赏。