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 流程控制实例代码
Sep 25 Python
Python编程中的文件操作攻略
Oct 16 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
python机器学习实现决策树
Nov 11 Python
pytorch进行上采样的种类实例
Feb 18 Python
python使用Geany编辑器配置方法
Feb 21 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
Python中如何引入第三方模块
May 27 Python
python实现自定义日志的具体方法
May 28 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 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
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
python 实现堆排序算法代码
2012/06/05 Python
python str与repr的区别
2013/03/23 Python
Python版的文曲星猜数字游戏代码
2013/09/02 Python
python求斐波那契数列示例分享
2014/02/14 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
python新手学习使用库
2020/06/11 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
2014年秋季开学寄语
2014/08/02 职场文书
Pandas 稀疏数据结构的实现
2021/07/25 Python