python_猜年龄
猜年龄,有三次机会,如何做?
1. 检查 输入的数据是否合法,通过异常try来处理,并记录 输入错误次数
2. 通过累加器,判断是否猜了3次,并提示还剩余多少的机会
3. 当3次错误,跳出
#!/usr/bin/python3 def guess_age(name, real_age):
'''猜年龄,有三次机会'''
count = 0
print('%s来猜猜我的年龄来' % name)
while True:
error_number = 0
while True: # 验证是否输入合法 try:
maybe_age = int(input("%s:" % name))
except:
error_number += 1
print('调皮,不想玩了,已经答非所问 %s 次了' % error_number)
else:
break count += 1
if maybe_age == real_age:
if count == 1:
print('%s真的太棒了,居然马上就猜中了' % name)
else:
print('%s真的太ben了,居然猜了这么多次才猜中,你居然猜了 %s 次' % (name, count))
break
elif maybe_age > real_age:
print('我有那么老么?滚滚滚,再给你%d机会'%(3-count))
elif count == 3:
print('不和你玩了,真的ben!!!!!!!')
break
elif maybe_age < real_age:
print('嗯哼,把我年龄说的那么低,暗示我智商低?哼,还给你%d机会' % (3-count)) if __name__ == '__main__':
guess_age(name='北门吹雪', real_age=18)
猜年龄进阶
猜年龄,并且记录最近5次猜的数据,并保存下来,下次打开程序,历史记录依旧保存
#!/usr/bin/python3 import pickle
import os
from random import randint
from collections import deque def guess_age(age): # 判断输入是否合法
try:
age = int(age)
except:
print('输入错误,重新输入')
return 'error'
if age == real_age:
print('猜对了')
return 'ok'
elif age > real_age:
print('猜大了')
return None
elif age < real_age:
print('猜小了')
return None if __name__ == '__main__':
# 判断历史记录是否存在
if os.path.exists('history'):
try:
# 存在就打开
history = pickle.load(open('history', 'br'))
except:
# 打开失败或者损坏重新定义
history = deque([], 5)
else:
# 不存在声明新的q,[]表示初始列表,5表示长度
history = deque([], 5)
# 生成随机数
real_age = randint(1, 100)
while True:
age = input('(1~100)输入:')
# 查询历史命令
if age == 'history' or age == 'h?':
print(list(history))
continue
result = guess_age(age)
history.append(age)
# 判断是否猜对
if result == 'ok':
break
# 退出程序
if age == 'q':
break
# 把历史数据写入文件
pickle.dump(history, open('history', 'bw'))
python_猜年龄的更多相关文章
- 我的python中级班学习之路(全程笔记第一模块) (第一章)(第2部分:如何设置python中的字体颜色,猜年龄练习题解答,while else语句,pycharm的使用)
第一章: python 基础语法 第 2 部分: 一.猜年龄练习题解答 直接上代码 >>> age = 26 >>> count = 0 >>&g ...
- python 小程序,猜年龄
要求如下:
- 基于虹软 2.0 人脸识别猜年龄 java版 demo
首先感谢虹软,是你们提供这么好的SDK支撑了我们的想象力! 这是一个用javav编写的可视化应用,用户通过自己的脸和计算机进行交互,计算机则通过萌萌女孩的语音和用户对话.核心程序就是利用ArcFace ...
- {python}完成完整的温度转换程序 猜数字游戏(猜价格,猜年龄等) 解析身份证号、学号不同片段的含义
完成完整的温度转换程序 while True: a = int(input("如果是华氏转摄氏,请按1\n,如果是摄氏转华氏,请按2\n")) if a==1: h = float ...
- Python练习-猜年龄的LowB游戏
Alex大神今天让我做一个猜年龄的游戏: 第一个游戏是你只能猜三次:真的很LowB啊~ # 编辑者:闫龙 #猜年龄游戏,3次后程序自动退出! ages = 29; #for循环3次 for i in ...
- python基础代码(猜年龄、从最内层跳出多层循环、简单的购物车程序)
1.猜年龄 , 可以让用户最多猜三次! age = 55 i=0 while i<3: user_guess = int (input ("input your guess:" ...
- day03_11 if语句实现猜年龄01
老男孩猜年龄游戏 age_of_princal = 56 guess_age = int( input(">>:") ) #以下为伪代码 ''' if guess_ag ...
- python猜年龄游戏升级版
猜年龄游戏升级版 要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出 age = 1 ...
- 用python写了一个猜年龄小游戏
写一个猜年龄游戏: 需要实现用户登录的功能 初始用户登录信息为 {'hades': '13579','nick': '123','ruixing': 'a1','fanping': 'b2'} 登录时 ...
随机推荐
- @EnableAsync annotation metadata was not injected
[问题描述] @EnableAsync annotation metadata was not injected spring配置初始化时候报错 nested exception is java.la ...
- 欢迎来到Hadoop
What Is Apache Hadoop? Hadoop是一个可靠的.可扩展的.分布式计算的开源软件. Hadoop是一个分布式处理大数据的框架.它被设计成从一台到上千台不等的服务器,每个服务器都提 ...
- BIOS 品牌快捷键
主板品牌 启动按键 笔记本品牌 启动按键 台式机品牌 启动按键 华硕主板 F8 联想笔记本 F12 联想台式机 F12 技嘉主板 F12 宏基笔记本 F12 惠普台式机 F12 微星主板 F11 华硕 ...
- Linux 笔记 #03# 在 Debian远程服务器上运行 Java socket程序
我试图做什么:把我的破代码放到服务器上运行,并成功与客户端进行 socket通信. 预备环境:刚安装好 MySQL 和 JVM 的 Linux远程服务器(Debian 8)一台. 主要有如下几个步骤: ...
- JavaScript对于switch语句中的case后键入值的带不带引号
一.用switch选择星期几 这时case为 例:case="星期一" 二.用switch选择单纯的数字 这时case为 例:case='1' 三.用switch选择一个应用了 ...
- FreeMarker处理json
在后台返回一个json结构时,在ftl处理方式如下 <#assign json="${text}"?eval /> ${json.test} 说明:json为接收的值, ...
- 微信小程序之实现slideUp和slideDown效果和点击空白隐藏
怎样实现jq中的slideUp或者slideDown这种动画效果呢,我的思路是用css3的transform: translateY()属性,给需要动画的元素添加上一个动画class. 先上效果图: ...
- hibernate使用注解配置索引
添加普通索引 @Table(name="t_token", indexes={@Index(name="token_strIndex", columnList= ...
- Mistakes in Hello World
今天在cmd中用Python写第一行代码"Hello World"出现错误. 写好的源码"HelloWorld.py"存放于" F:\learning ...
- python实现简单函数发生器
最近学校又抽风把我自动化系的苦逼童鞋留下做课设,简直无聊到爆的-->用VB实现函数发生器,(语言不限制) 大伙不知从哪搞来的MATLAB版本,于是几十个人就在这基础上修修改改蒙混过关了,可我实在 ...