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应用的教程
Apr 16 Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
深入了解Django中间件及其方法
Jul 26 Python
wxPython实现文本框基础组件
Nov 18 Python
Python中bisect的使用方法
Dec 31 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
OpenCV 之按位运算举例解析
Jun 19 Python
简单了解Django项目应用创建过程
Jul 06 Python
对Python 字典元素进行删除的方法
Jul 31 Python
Python实现一个论文下载器的过程
Jan 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函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
关于js datetime的那点事
2011/11/15 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python中元类用法实例
2014/10/10 Python
python用户管理系统的实例讲解
2017/12/23 Python
Python实现通讯录功能
2018/02/22 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python3图片文件批量重命名处理
2019/10/31 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
2014年仓库工作总结
2014/11/20 职场文书
检讨书范文2000字
2015/01/28 职场文书
水电工程师岗位职责
2015/02/13 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
导游词幽默开场白
2019/06/26 职场文书
python自动化八大定位元素讲解
2021/07/09 Python