python实现随机加减法生成器


Posted in Python onFebruary 24, 2020

本文实例为大家分享了python实现随机加减法生成器的具体代码,供大家参考,具体内容如下

为了让外甥女练习算术,用python给她写了个自动出加减法的小程序。

该程序使用了文字转语音的库pyttsx,程序运行时,会有相对应的语音提示。pyttsx文档

为了防止小孩乱按键盘,导致非法输入,我添加了异常处理:

def validate(num):#判断输入是否非法
 try:
 num=int(num)
 except:
 say("非法输入,请重新输入")
 return False
 return True

完整的代码如下:

import random
import pyttsx
#print(random.randint(0,9))


def say(s):
 engine=pyttsx.init()
 engine.setProperty('voice','HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_ZH-CN_HUIHUI_11.0' )
 engine.setProperty('rate', 250)
 engine.say(s)
 engine.runAndWait()
def validate(num):#判断输入是否非法
 try:
 num=int(num)
 except:
 say("非法输入,请重新输入")
 return False
 return True

def askadd(a,b,c):#询问加法
 if a+b==int(c):
 print("答对了")
 say("答对了")
 else:
 print("答错了,正确答案是:"+str(a+b))
 say("答错了,正确答案是:"+str(a+b))
def asksub(a,b,c):#询问减法
 if a==int(c):
 print("答对了")
 say("答对了")
 else:
 print("答错了,正确答案是:"+str(a))
 say("答错了,正确答案是:"+str(a))


if __name__ == "__main__":
 k=1#统计题数
 while True:
 a=random.randint(1,20)
 b=random.randint(1,20)
 #a,b是加法中的两个加数;a+b被减数,b减数
 #a,b的范围为1-20
 rule=random.randint(0, 1)#随机生成加减法,1 is plus,0 is sub
 if rule==1:
 say('第'+str(k)+'题:'+str(a)+'+'+str(b)+'=')
 c=input('第'+str(k)+'题:'+str(a)+'+'+str(b)+'=')
 while not validate(c):
 c=input(str(a)+'+'+str(b)+'=')
 askadd(a, b, c)
 k=k+1
 continue
 else:
 say('第'+str(k)+'题:'+str(a+b)+'减'+str(b)+'=')
 c=input('第'+str(k)+'题:'+str(a+b)+'-'+str(b)+'=')
 while not validate(c):
 c=input(str(a+b)+'-'+str(b)+'=')
 asksub(a, b, c)
 k=k+1
 continue

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现多线程下载文件的代码实例
Jun 01 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
pytorch数据预处理错误的解决
Feb 20 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
python中实现词云图的示例
Dec 19 Python
总结Python常用的魔法方法
May 25 Python
在Python中如何使用yield
Jun 07 Python
Python拼接字符串的7种方式详解
Mar 19 #Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 #Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 #Python
python绘制动态曲线教程
Feb 24 #Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 #Python
Windows系统下pycharm中的pip换源
Feb 23 #Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 #Python
You might like
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Python类型转换的魔术方法详解
2020/12/23 Python
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
大学生新学期计划书
2014/04/28 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
国庆节活动总结
2014/08/26 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书