目标:

  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. HihoCoder1619 “共同富裕”(逆向思维)

    “共同富裕” 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个数组A1, A2, ... AN,每次操作可以从中选定一个元素Ai,把除了Ai之外的所有元素都加1. ...

  2. Django--django-admin.py on windows does not work

    使用命令:Python django-admin.py startproject projectname 使用django-admin.py startapp myblog没有创建新的app,使用下面 ...

  3. python中的configparse学习笔记

    configparse主要用于在python中进行配置文件的读取. 基本的读取配置文件: -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以 ...

  4. JS Date日期

    //日期属性var td = new Date(); alert( "getDate():" +td.getDate()+"\n" + "getDay ...

  5. Java-Maven-Runoob:Maven Eclipse

    ylbtech-Java-Maven-Runoob:Maven Eclipse 1.返回顶部 1. Maven Eclipse Eclipse 提供了一个很好的插件 m2eclipse ,该插件能将 ...

  6. 【原创】深入理解Docker容器和镜像 -- 分析了docker的命令含义

    10张图带你深入理解Docker容器和镜像 镜像(Image)就是一堆只读层(read-only layer)的统一视角 要点:容器 = 镜像 + 读写层.并且容器的定义并没有提及是否要运行容器. 一 ...

  7. php对数组中的值进行排序

    案例 <?php $a = array('1124','1125','1126'); $s1 = 1124; $s2 = 1125; $ks1 = array_search($s1,$a); $ ...

  8. mysql数据恢复 insert\update\delete 工具MyFlash

    一.简介MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具.该工具通过解析v4版本的binlog,完成回滚操作.相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易. 该 ...

  9. dB2 索引相关

    ALTER TABLE "XXXX"."tableA" PCTFREE 20 ; CREATE INDEX "schema"."X ...

  10. C#泛型参数多线程与复杂参数多线程

    背景:最近用多线程用的比较多自己走了一些弯路,分享出来希望大家少走弯路,C#中的多线程有两个重载,一个是不带参数的,一个是带参数的,但是即便是带参数的多线程也不支持泛型,这使得使用泛型参数多线程的时候 ...