day06 作业
猜年龄游戏
'''
1. 给定年龄,用户可以猜三次年龄
2. 年龄猜对,让用户选择两次奖励
3. 用户选择两次奖励后可以退出
'''
import random
age = random.randint(18, 40)  # 随机数字,范围18-40
count = 0
reward_dict = {
    '0': '奥特曼',
    '1': '钢铁侠',
    '2': '《笨方法学python》',
    '3': '泰国一日游',
    '4': 'iphoneX',
    '5': '娃娃',
    '6': '阿拉丁',
    '7': '特斯拉',
    '8': '谢谢惠顾'
}
reward_cart = {}   # 用户获得奖品放在这里
while count < 3:
    count += 1
    age_inp = input('请输入你的年龄:').strip()
    if not age_inp.isdigit():  # 判断是否是数字
        print('非法输入字符,请重新输入')
    age_inp = int(age_inp)
    # 删选年龄范围
    if age_inp > 40 or age_inp < 18:
        print('超出范围,请重新输入')
    # 核心逻辑
    if age_inp == age:
        print('猜对了')
        # 打印奖品
        for i, j in reward_dict.items():
            print(f'奖品编号:{i}  {j}')
        # 用户抽奖两次
        for k in range(2):
            reward_choice = input('请输入你想要的奖品').strip()
            if reward_choice not in reward_dict:  # 删选范围
                print('没这么多奖品')
            else:
                reward_get = reward_dict[reward_choice]
                print(f'恭喜获得奖品:{reward_get}')
                if reward_get not in reward_cart:
                    reward_cart[reward_get] = 1
                else:
                    reward_cart[reward_get] += 1
        print(f'恭喜你获得以下奖品:{reward_cart}')
        break
    elif age_inp < age:
        print('猜小了')
    else:
        print('猜大了')
    continue
三级菜单
menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
# 直接来,一层层进入
tag = True
while tag:
    menu1 = menu
    for key in menu1:
        print(key)
    choice1 = input('第一层>>').strip()
    if choice1 == 'b':
        break
    if choice1 == 'q':
        tag = False
        continue
    if choice1 not in menu1:
        continue
    while tag:
        menu2 = menu1[choice1]
        for key in menu2:
            print(key)
        choice2 = input('第二层>>').strip()
        if choice2 == 'b':
            break
        if choice2 == 'q':
            tag = False
            continue
        if choice2 not in menu2:
            continue
        while tag:
            menu3 = menu2[choice2]
            for key in menu3:
                print(key)
            choice3 = input('第三层>>').strip()
            if choice3 == 'b':
                break
            if choice3 == 'q':
                tag = False
                continue
            if choice3 not in menu3:
                continue
            while tag:
                menu4 = menu3[choice3]
                for key in menu4:
                    print(key)
                choice4 = input('第四层>>').strip()
                if choice4 == 'b':
                    break
                if choice4 == 'q':
                    tag = False
                    continue
                if choice4 not in menu4:
                    continue
# 偷懒方法
menu1 = [menu]
while True:
    if len(menu1) == 0:
        break
    current_menu = menu1[-1]
    for key in current_menu:
        print(key)
    choice = input('请输入>>').strip()
    if choice == 'q':
        break
    if choice == 'b':
        menu1.pop(-1)
        continue
    menu1.append(current_menu[choice])
												
											day06 作业的更多相关文章
- python day06 作业答案
		
1. count=1 while count<11: fen=input('请第{}个评委打分' .format( count)) if int(fen) >5 and int(fen) ...
 - day06作业---字典循环
		
'''1.1使⽤循环打印以下效果: ***************''' for a in range(1,6): print(a*'*') '''1.2: ***** **** *** ** * ' ...
 - day06作业
		
一.方法 1.方法是完成特定功能的代码块. 修饰符 返回值类型 方法类型(参数类型 参数名1,参数类型 参数名2,...){ 方法体语句: return返回值: } 修饰符:目前就用publi ...
 - python 作业
		
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
 - DSB
		
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
 - 老男孩Python全栈第2期+课件笔记【高清完整92天整套视频教程】
		
点击了解更多Python课程>>> 老男孩Python全栈第2期+课件笔记[高清完整92天整套视频教程] 课程目录 ├─day01-python 全栈开发-基础篇 │ 01 pyth ...
 - day05对象和类
		
day06作业: 第一题:分析以下需求,并用代码实现 手机类Phone 属性: 品牌brand 价格price 行为: 打电话call() 发短信sendMessage() 玩游戏playGame() ...
 - day06 再谈编码 and 作业讲解
		
1. 小数据池,(其他语言又叫常量池) id() 查看变量的内存地址 is和== is 判断内存地址是否一致 == 判断内容是否一致 小数据池的作用: 为了快速的创建字符串对象, 可以减少内存的浪费 ...
 - python开发学习-day06(模块拾忆、面向对象)
		
s12-20160130-day06 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
 
随机推荐
- Linux-TCP之深入浅出send和recv【转】
			
转自:https://www.cnblogs.com/JohnABC/p/7238417.html 内容摘自:TCP之深入浅出send和recv.再次深入理解TCP网络编程中的send和recv 建议 ...
 - 卷积层输出feature maps尺寸的计算
			
默认feature maps的宽和高相等. 常规卷积 输入的feature maps尺寸为i,卷积核的尺寸为k,stride为s,padding为p,则输出的feature maps的尺寸o为 当pa ...
 - 在Rust中使用C语言的库功能
			
主要是了解unsafe{}语法块的作用. #[repr(C)] #[derive(Copy, Clone)] #[derive(Debug)] struct Complex { re: f32, im ...
 - java中的字符串二
			
public class TestString { public static void main(String[] args) { // TODO Auto-generated method stu ...
 - MySQL的delete误操作的快速恢复方法
			
1. 根据误操作时间定位binlog位置找到数据库的binlog存放位置,当前正在使用的binlog文件里面就有我们要恢复的数据.一般生产环境中的binlog文件都是几百M乃至上G的大小,我们不能逐行 ...
 - Paper | One-to-Many Network for Visually Pleasing Compression Artifacts Reduction
			
目录 故事 网络设计 网络前端 升采样中的平移-均值化 网络度量 训练 发表于2017年CVPR. 目标:JPEG图像去压缩失真. 主要内容: 同时使用感知损失.对抗损失和JPEG损失(已知量化间隔, ...
 - HikariCP连接池
			
1.HikariCP连接池是什么? HikariCP是数据库连接池,而且是号称史上最快的,而且目前来看确实是这样的,SpringBoot2.0也已经采用HikariCP作为默认连接池配置. githu ...
 - 线性结构之习题选讲-ReversingLinkedList
			
目录 一.什么是抽象的链表 二.单链表的逆转 三.测试数据 3.1 边界测试 更新.更全的<数据结构与算法>的更新网站,更有python.go.人工智能教学等着你:https://www. ...
 - python中count和index
			
str = [1,2,3,4,5] #定义一个列表 str = 3 #列表3 str [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] str.count(1 ...
 - tensorboard--打开训练的日志文件
			
tensorboard --logdir=logs 注意:等号之间不要空格.