Python实现的简单算术游戏实例


Posted in Python onMay 26, 2015

本文实例讲述了Python实现的简单算术游戏。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/env python
from operator import add, sub 
from random import randint, choice
ops = {'+': add, '-':sub}
#定义一个字典
MAXTRIES = 2 
def doprob():
  op = choice('+-')
  #用choice从'+-'中随意选择操作符 
  nums = [randint(1,10) for i in range(2)]
  #用randint(1,10)随机生成一个1到10的数,随机两次使用range(2) 
  nums.sort(reverse=True)
  #按升序排序
  ans = ops[op](*nums)
  #利用函数
  pr = '%d %s %d = ' % (nums[0], op, nums[1])
  oops = 0 
  #oops用来计算failure测试,当三次时自动给出答案
  while True:
    try:
      if int(raw_input(pr)) == ans:
        print 'correct'
        break
      if oops == MAXTRIES:
        print 'answer\n %s%d' % (pr, ans)
        break
      else:
        print 'incorrect... try again'
        oops += 1
    except (KeyboardInterrupt, EOFError, ValueError):
      print 'invalid ipnut... try again'
def main():
  while True:
    doprob()
    try:
      opt = raw_input('Again? [y]').lower()
      if opt and opt[0] == 'n':
        break
    except (KeyboardInterrupt, EOFError):
      break
if __name__ == '__main__':
  main()

运行结果如下:

8 - 1 = 7
correct
Again? [y]y
7 - 1 = 6
correct
Again? [y]y
9 + 4 = 0
incorrect... try again
9 + 4 =

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python求众数问题实例
Sep 26 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
python实现m3u8格式转换为mp4视频格式
Feb 28 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
Numpy数组array和矩阵matrix转换方法
Aug 05 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
python复合条件下的字典排序
Dec 18 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 Python
Django中使用group_by的方法
May 26 #Python
python3序列化与反序列化用法实例
May 26 #Python
python实现用于测试网站访问速率的方法
May 26 #Python
Python函数可变参数定义及其参数传递方式实例详解
May 25 #Python
Python易忽视知识点小结
May 25 #Python
Python中类型关系和继承关系实例详解
May 25 #Python
pymssql数据库操作MSSQL2005实例分析
May 25 #Python
You might like
PHP脚本的10个技巧(7)
2006/10/09 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
jQuery ajax cache缓存问题
2010/07/01 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
Python线程的两种编程方式
2015/04/14 Python
python对html代码进行escape编码的方法
2015/05/04 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
Python线程指南详细介绍
2017/01/05 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python学习基础之循环import及import过程
2018/04/22 Python
python协程之动态添加任务的方法
2019/02/19 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
js实现弹框效果
2021/03/24 Javascript
外贸业务员求职信范文
2013/12/12 职场文书
生物学专业求职信
2014/07/23 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2014年党委工作总结
2014/11/22 职场文书
接收函格式
2015/01/30 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers
基于Python实现西西成语接龙小助手
2022/08/05 Golang