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 相关文章推荐
利用Psyco提升Python运行速度
Dec 24 Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
python实现定时提取实时日志程序
Jun 22 Python
python实现机器学习之元线性回归
Sep 06 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
python画环形图的方法
Mar 25 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 Python
python - timeit 时间模块
Apr 06 Python
python中subplot大小的设置步骤
Jun 28 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接口与接口引用的深入解析
2013/08/09 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
javascript 闭包详解
2015/07/02 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
办公室文秘自我鉴定
2013/09/21 职场文书
高中毕业生自我鉴定例文
2013/12/29 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
人事专员职责
2014/02/22 职场文书
市场推广策划方案
2014/06/02 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python