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 域名分析工具实现代码
Jul 15 Python
在Django中编写模版节点及注册标签的方法
Jul 20 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
Python中创建二维数组
Oct 17 Python
windows下numpy下载与安装图文教程
Apr 02 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 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
Cygwin中安装PHP方法步骤
2015/07/04 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python 字符串操作方法大全
2014/03/11 Python
Python读写ini文件的方法
2015/05/28 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
如何使用Pytorch搭建模型
2020/10/26 Python
营销总经理岗位职责
2014/02/02 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
红色旅游心得体会
2014/09/03 职场文书
英文自荐信范文
2015/03/25 职场文书
生产实习心得体会范文
2016/01/22 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript