目标:

  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. 【整理】石子合并问题(四边形不等式DP优化)

    有很多种算法: 1,任意两堆可以合并:贪心+单调队列. 2,相邻两堆可合并:区间DP    (O(n^3)) ). 3,相邻,四边形不等式优化DP (O(n^2) ). 4,相邻,GarsiaWach ...

  2. 设计模式之原型(prototype)模式

    相信大多数的人都看过<西游记>,对孙悟空拔毛变出小猴子的故事情节应该都很熟悉.孙悟空可以用猴毛根据自己的形象复制出很多跟自己一模一样的小猴兵出来,其实在设计模式中也有一个类似的模式,我们可 ...

  3. js实现tab页面不同内容切换显示

    效果      实现的思路如下: controller层同时把两个内容都查处理 前端html用js控制显示 (1)前端的tab代码 (2)tab内容的结构 (3)关键部分 js $(".hd ...

  4. Sublimetext3插件与使用技巧

    1.    package control 的安装与注意事项 2.    常用插件的安装与注意事项 3.    主题风格设置 4.    常用快捷键 https://packagecontrol.io ...

  5. ajax传递数组后台接收不到值的问题

    背景: JQGrid需要进行批量删除操作传给后台的是数组,结果后台接收不到值. 后台语言:java 原因: ajax传递参数时,traditional 默认为false,JQuery会深度序列化参数对 ...

  6. win7安装和配置IIS7

    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.IIS意味着你能发布网页, 要在wi ...

  7. IIS安装步骤(WIN10)

    打开控制面板 点开程序   点击“启动或关闭Windows功能,进入到启用或关闭windows功能之后我们选中“Internet Infomation Services”并勾选   点击确定     ...

  8. python 无序模块,hashlib模块

    无序模块什么是无序模块,将字符串转化为十六进制的字符串类型,主要运用在网络编程中.1,json模块 1,用于网络传输,跨语言,可用的类型有 int str 列表-->元祖会变为列表 字典--&g ...

  9. NOIp2018 D2T3 defense——树上倍增

    题目:https://www.luogu.org/problemnew/show/P5024 考场上只会写n,m<=2000的暴力,还想了想A1和A2的情况,不过好像只得了A1的分.然后仔细一看 ...

  10. appium控制Android按键

    按键的keycode,如下: KEYCODE_HOME Home键 3 KEYCODE_BACK 返回键 4 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYC ...