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中的index()方法使用教程
May 18 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
python3实现字符串操作的实例代码
Apr 16 Python
使用python接入微信聊天机器人
Mar 31 Python
python里运用私有属性和方法总结
Jul 08 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 Python
Python3 如何开启自带http服务
May 18 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中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
简单实现python画圆功能
2018/01/25 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
数据库方面面试题
2012/04/22 面试题
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
自荐信的基本格式
2014/02/22 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
义和团口号
2014/06/17 职场文书
护理专业自荐信范文
2015/03/06 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android