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连接mssql数据库编码问题解决方法
Jan 01 Python
进一步理解Python中的函数编程
Apr 13 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
Python读写docx文件的方法
May 08 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
python字典的遍历3种方法详解
Aug 10 Python
python-numpy-指数分布实例详解
Dec 07 Python
python实现的人脸识别打卡系统
May 08 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 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连接oracle数据库及查询数据的方法
2014/12/29 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
Python Paramiko模块的安装与使用详解
2016/11/18 Python
django删除表重建的实现方法
2019/08/28 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
药品促销活动方案
2014/02/14 职场文书
环保倡议书50字
2014/05/15 职场文书
合作协议书模板
2014/10/10 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
Win11快速关闭所有广告推荐
2022/04/19 数码科技
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android