目标:

  1.实现两个数的加减法

  2.回答者3次输错计算结果后,输出正确结果,并询问回答者是否继续

1.使用常规函数实现两个数的加减法游戏

代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*- '''使用常规函数编写出题游戏''' import random def add(x,y):
return x + y def sub(x,y):
return x - y def chuti():
cmds = {'+': add, '-': sub}
ops = '+-'
op = random.choice(ops)
nums = [random.randint(1,50) for i in xrange(2)]
nums.sort(reverse=True)
prompt = '%s %s %s = ' %(nums[0], op, nums[1])
anwser = cmds[op](*nums) counter = 0
while counter < 3:
try:
result = int(raw_input(prompt))
except:
continue
if anwser == result:
print "回答正确"
print "-" * 20
break
else:
counter += 1
print "回答错误"
print "-" * 20
else:
print "正确答案是: %s %s" % (prompt, anwser) if __name__ == "__main__":
while True:
chuti()
try:
yn = raw_input("Continue(y/n?)").strip()[0]
except IndexError:
continue
except (KeyboardInterrupt,EOFError):
yn = 'n'
if yn in 'Nn':
print "结束"
break

•运行代码,测试效果

[root@localhost python]# python new_mathgame.py
27 + 25 = 5
回答错误
--------------------
27 + 25 = 2
回答错误
--------------------
27 + 25 = 3
回答错误
--------------------
正确答案是: 27 + 25 = 52
Continue(y/n?)y
15 - 1 = 12
回答错误
--------------------
15 - 1 = 13
回答错误
--------------------
15 - 1 = 14
回答正确
--------------------
Continue(y/n?)n
结束

2.使用lambda匿名函数实现两位数的加减法游戏

代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*- '''使用匿名函数lambda编写出题游戏''' import random
# def add(x,y):
# return x + y # def sub(x,y):
# return x - y
def chuti():
cmds = {'+': lambda x, y: x + y, '-': lambda x, y: x - y}
ops = '+-'
op = random.choice(ops)
nums = [random.randint(1,50) for i in xrange(2)]
nums.sort(reverse=True)
prompt = '%s %s %s = ' %(nums[0], op, nums[1])
anwser = cmds[op](*nums) counter = 0
while counter < 3:
try:
result = int(raw_input(prompt))
except:
continue
if anwser == result:
print "回答正确"
print "-" * 20
break
else:
counter += 1
print "回答错误"
print "-" * 20
else:
print "正确答案是: %s %s" % (prompt, anwser) if __name__ == "__main__":
while True:
chuti()
try:
yn = raw_input("Continue(y/n?)").strip()[0]
except IndexError:
continue
except (KeyboardInterrupt,EOFError):
yn = 'n'
if yn in 'Nn':
print "结束"
break

Python编写两个数的加减法游戏的更多相关文章

  1. python 求两个数的最大公约数

    给定两个整数a,b,求他们的最大公约数 def gcd(a,b): if a<b: a,b=b,a while(a%b != 0): c = a%b a=b b=c return b a,b = ...

  2. python计算两个数的百分比

    a和b是整数,计算a/b的百分比 a=3 b=7 a=float(a) b=float(b) 保留百分比后2位小数 print  "%.2f%%" % (a/b*100) '42. ...

  3. 【Python】【demo实验15】【练习实例】【两个数范围内素数的统计】

    原题: 判断101-200之间有多少个素数,并输出所有素数. 关于素数的统计,之前已经做过相应的实验了,参考:[显示素数,显示两个数范围内的所有素数] 原题给出的解法,使用math的sqrt函数,这个 ...

  4. 【Python】【demo实验3】【显示素数,显示两个数范围内的所有素数】

    打印两个整数之间的所有素数: (使用平方根来判断  是否应停止验证该数值是否为素数) for i in range(956253526252,9956253526252): k = 1 if i == ...

  5. python算法 - 快速寻找满足条件的两个数-乾颐堂

    题目前提是一定存在这样两个数 解法一就不写了...一般想不到吧 一开始想到的是解法二最后的用hash表 (其实是想到创建一个跟target一样大的数组啦..存在就写入index,但是要全部找出,那得二 ...

  6. python 函数求两个数的最大公约数和最小公倍数

    1. 求最小公倍数的算法: 最小公倍数  =  两个整数的乘积 /  最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: 1. 整数A对整数 ...

  7. python开发_tkinter_小球完全弹性碰撞游戏

    python开发_tkinter_小球完全弹性碰撞游戏   完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...

  8. 【转】使用python编写网络通信程序

    文章主体现部分来自:http://openexperience.iteye.com/blog/145701 1. 背景知识 如果使用TCP协议来传递数据,客户端和服务器端需要分别经过以下步骤: ser ...

  9. python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (二)

    Hey! 如果你还没有看这篇的上文的话,可以去稍稍瞅一眼,会帮助加速理解这一篇里面涉及到的递归结构哦!(上一篇点这里:<python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (一)> ...

随机推荐

  1. uboot Makefile 文件源码分析

    Makefile 是一个神奇的文件 详情参考uboot配置和编译过程详解

  2. python学习之控制语句

    #if statement number=int(input("please input a number")); if number<10 : print("is ...

  3. Servlet、Filter、Listener

    1.Servlet 1.1servlet接口 All Known Implementing Classes:GenericServlet, HttpServlet GenericServlet:与协议 ...

  4. VUE API 重点

    VUE API 重点 生命周期方法 每个组件都有生命周期,是向 ReactJs 学习的. computed 在一个组件声明一个人,人有名,人有姓,输入姓和名.((&--&%--& ...

  5. 有关Botton的用法(一)

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content&qu ...

  6. 让Delphi XE5跟其他版本的Delphi共存

    找到Delphi XE5的安装根目录  ....  \Program Files (x86)\Embarcadero\RAD Studio\12.0\bin下的cglm.ini文件, 打开cglm.i ...

  7. Php header()函数及其常见使用

    语法: Void header(string $string[,bool $replace=true [, int $http_response_code) 向客户端发送原始的HTTP报头 需注意: ...

  8. 1041 Be Unique

    题意:找到一串数字序列中首个出现的不重复的数字. 思路:用哈希,因为数值大小在[1,10^4],所以可以直接开数组.输入数据时记录每个数字出现过的次数.然后遍历原序列,遇到第一个次数为1的数字就是所求 ...

  9. Unity Shader入门教程(三)自制光照模型

    光照模型的概念目前还不明晰,因为笔者也是一个初学者,所以请小心对待笔者介绍的内容.笔者认为光照模型是规定光照算法的模型,比如说前面提到的Lambert光照模型,规定了材质表面的光线的表达式为 环境光+ ...

  10. web deploy 部署网站

    一.服务端配置 1. 确保在服务器端(我目前是win server 2012 R2)安装管理服务 安装后服务器会重启, 2)安装webdeploy http://www.iis.net/downloa ...