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类的多重继承问题深入分析
Nov 09 Python
python操作mongodb根据_id查询数据的实现方法
May 20 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python定时器实例代码
Nov 01 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
Python新手学习标准库模块命名
May 29 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
python函数指定默认值的实例讲解
Mar 29 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+xslt在windows平台上
2006/10/09 PHP
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
点击进行复制的JS代码实例
2013/08/23 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python数组过滤实现方法
2015/07/27 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python 网络编程常用代码段
2016/08/28 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
Python程序暂停的正常处理方法
2019/11/07 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
python定义类self用法实例解析
2020/01/22 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
介绍一下你对SOA的认识
2016/04/24 面试题
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
模范教师事迹材料
2014/02/10 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书