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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
详解使用Python处理文件目录的相关方法
Oct 16 Python
Django内容增加富文本功能的实例
Oct 17 Python
基于Django用户认证系统详解
Feb 21 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
利用Python实现朋友圈中的九宫格图片效果
Sep 03 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
python 如何对logging日志封装
Dec 02 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
python 多态 协议 鸭子类型详解
Nov 27 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
德劲1103二次变频版的打磨
2021/03/02 无线电
用mysql内存表来代替php session的类
2009/02/01 PHP
php中filter_input函数用法分析
2014/11/15 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
js面向对象的写法
2016/02/19 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
区分vue-router的hash和history模式
2020/10/03 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
餐厅总经理岗位职责
2013/12/31 职场文书
党支部活动策划方案
2014/08/18 职场文书
三潭印月的导游词
2015/02/12 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
电影开国大典观后感
2015/06/04 职场文书
提档介绍信范文
2015/10/22 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
基于Python实现股票收益率分析
2022/04/02 Python