Python编写两个数的加减法游戏
目标:
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编写两个数的加减法游戏的更多相关文章
- 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 = ...
- python计算两个数的百分比
a和b是整数,计算a/b的百分比 a=3 b=7 a=float(a) b=float(b) 保留百分比后2位小数 print "%.2f%%" % (a/b*100) '42. ...
- 【Python】【demo实验15】【练习实例】【两个数范围内素数的统计】
原题: 判断101-200之间有多少个素数,并输出所有素数. 关于素数的统计,之前已经做过相应的实验了,参考:[显示素数,显示两个数范围内的所有素数] 原题给出的解法,使用math的sqrt函数,这个 ...
- 【Python】【demo实验3】【显示素数,显示两个数范围内的所有素数】
打印两个整数之间的所有素数: (使用平方根来判断 是否应停止验证该数值是否为素数) for i in range(956253526252,9956253526252): k = 1 if i == ...
- python算法 - 快速寻找满足条件的两个数-乾颐堂
题目前提是一定存在这样两个数 解法一就不写了...一般想不到吧 一开始想到的是解法二最后的用hash表 (其实是想到创建一个跟target一样大的数组啦..存在就写入index,但是要全部找出,那得二 ...
- python 函数求两个数的最大公约数和最小公倍数
1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: 1. 整数A对整数 ...
- python开发_tkinter_小球完全弹性碰撞游戏
python开发_tkinter_小球完全弹性碰撞游戏 完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...
- 【转】使用python编写网络通信程序
文章主体现部分来自:http://openexperience.iteye.com/blog/145701 1. 背景知识 如果使用TCP协议来传递数据,客户端和服务器端需要分别经过以下步骤: ser ...
- python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (二)
Hey! 如果你还没有看这篇的上文的话,可以去稍稍瞅一眼,会帮助加速理解这一篇里面涉及到的递归结构哦!(上一篇点这里:<python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (一)> ...
随机推荐
- CODEVS1049 棋盘染色
题目大意:01矩阵,1表示黑色,0表示白色,求将白色染成黑色最少的次数 使黑色成为一整个联通块. 题解: 搜索bfs 90... dfs判断连通 #include<iostream> #i ...
- 十三、python沉淀之路--文件操作
一.文件的读操作 例1 f = open('学习',encoding='utf-8') #首先要打开文件,不然直接读,是读不出来的 data = f.read() #read后的括号里不添加任何东西 ...
- #51单片机#8位数码管(74HC595芯片)的使用方法
数码管基本属性:1.采用2片595驱动数码管,需要单片机3路IO口,根据数码管动态扫描原理进行显示:2.宽工作电压3.3V到5V:3.PCB板尺寸:71mm*22mm4.数码管型号:0.36 4位共阳 ...
- Oracle cursor_sharing 参数 详解
一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 ...
- php执行多个存储过程(二)
使用公共连接文件形式 include_once 'inc/conni.php'; $result = mysqli_query($conni, "call proc_test()" ...
- 支付宝RSA签名
1.参考网上相关文章,开放php中的openssl,但使用网上例子调用openssl_pkey_new,一直报100013错误.后改用用支付宝提供的SDKdemo程序 发现使用提供的privkye,可 ...
- hdu 4609 3-idiots——FFT
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4609 答案就是随便选三条边的方案 - 不合法的方案. 不合法的方案就是算出 x+y = k 的方案数 g[ ...
- zookeeper运维(转)
本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要 ...
- C语言中的printf函数的输入输出问题
这个问题是个很基础,但是我一直不知道的问题,是同学问了之后才知道的,长知识了. 这里要注意的是,printf函数是从右向左计算,从左向右输出. 距离如下: #include <stdio.h&g ...
- EasyUI TreeJson
1. TreeJson str = GetTreeJsonByTable(dt, "); StringBuilder treeResult = new StringBuilder(); St ...