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写的一个文本编辑器
Jan 23 Python
改进Django中的表单的简单方法
Jul 17 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
Python属性和内建属性实例解析
Jan 14 Python
python中sympy库求常微分方程的用法
Apr 28 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
C站最全Python标准库总结,你想要的都在这里
Jul 03 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP新手上路(十二)
2006/10/09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
详解python中的json的基本使用方法
2016/12/21 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
美国电视购物:QVC
2017/02/06 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
毕业生物理教师求职信
2013/10/17 职场文书
小学生元旦广播稿
2014/02/21 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书