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调用cmd复制文件代码分享
Dec 27 Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python实现的密码强度检测器示例
Aug 23 Python
python使用代理ip访问网站的实例
May 07 Python
python可视化实现代码
Jan 15 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
python3射线法判断点是否在多边形内
Jun 28 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
如何学习Python time模块
Jun 03 Python
python属于解释型语言么
Jun 15 Python
Python源码解析之List
May 21 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中的时间处理
2006/10/09 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
react 生命周期实例分析
2020/05/18 Javascript
Python使用post及get方式提交数据的实例
2019/01/24 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
Python Subprocess模块原理及实例
2019/08/26 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
node中使用shell脚本的方法步骤
2021/03/23 Javascript
模范教师事迹材料
2014/02/10 职场文书
地理科学专业自荐信
2014/09/01 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python
Feign调用传输文件异常的解决
2021/06/24 Java/Android
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
vue+iview实现手机号分段输入框
2022/03/25 Vue.js