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脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
获取python的list中含有重复值的index方法
Jun 27 Python
flask中过滤器的使用详解
Aug 01 Python
详解Python用户登录接口的方法
Apr 17 Python
python简单区块链模拟详解
Jul 03 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
python线程信号量semaphore使用解析
Nov 30 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
numpy的Fancy Indexing和array比较详解
Jun 11 Python
关于Python错误重试方法总结
Jan 03 Python
Python内置数据结构列表与元组示例详解
Aug 04 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数组是否为空的代码
2011/09/08 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
python实现定时发送邮件
2020/12/23 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
商场经理竞聘演讲稿
2014/01/01 职场文书
会议邀请函范文
2014/01/09 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
单位介绍信格式
2015/01/31 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
胡桃夹子观后感
2015/06/11 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript