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处理csv数据的方法
Mar 11 Python
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
浅析Python 中整型对象存储的位置
May 16 Python
Python第三方库的安装方法总结
Jun 06 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
python实现高斯判别分析算法的例子
Dec 09 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Python如何使用ElementTree解析xml
Oct 12 Python
python import 上级目录的导入
Nov 03 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
python中的装饰器该如何使用
Jun 18 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 a simple smtp class
2007/11/26 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
毕业生自我鉴定
2013/11/05 职场文书
青年文明号事迹材料
2014/01/18 职场文书
青春无悔演讲稿
2014/05/08 职场文书
消防宣传口号
2014/06/16 职场文书
作风建设剖析材料
2014/10/06 职场文书
思想政治表现评语
2015/01/04 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
Go语言中的UTF-8实现
2021/04/26 Golang
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
详解MySQL连接挂死的原因
2021/05/18 MySQL