0912作业

猜年龄小游戏

要求: 给定年龄,用户可以猜三次年龄年龄猜对,让用户选择两次奖励用户选择两次奖励后可以退出

age = 18
count = 0
price_dict = {0: '布娃娃', 1: '变形金刚', 2: '奥特曼', 3: '<Python从入门到放弃>'}

while count < 3:
    inp_age_info = int(input('请输入你猜测的年龄:'))
    if inp_age_info == age:
        print('猜对了')
        print(price_dict)
        for i in range(2):
            price_info = input('请选择你想要的礼物,不要礼物请按q退出:')
            if price_info != 'q':
                print(f'恭喜你获得{price_dict[int(price_info)]}')
            else:
                break
        break
    elif inp_age_info < age:
        print('猜小了')
    else:
        print('猜大了')

    count += 1

    if count == 3:
        inp_choice = input('请问还要继续游戏吗? 按Y/y继续游戏,按N/n退出游戏:')
        if inp_choice == 'Y' or inp_choice == 'y':
            count = 0
        elif inp_choice == 'N' or inp_choice == 'n':
            count += 1
            break
        else:
            print('输入错误')

打印三级菜单

要求: 打印省、市、县三级菜单,可返回上一级,可随时退出程序

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

# 主要用到的方法和思路如下
# a = menu['上海']
# b = menu['上海']['闵行']
# c = menu['上海']['闵行']['人民广场']
# for i in a:
#     print(i)
# for i in b:
#     print(i)
# for i in c:
#     print(i)


tag = True

while tag:
    menu1 = menu
    #首先打印第一层字典的key
    for i in menu1:
        print(i)

    # 用户输入
    inp_choice = input('请输入你要查看的城市名称,按q退出:')
    #判断输入信息
    if inp_choice in menu1:
        for j in menu1[inp_choice]:
            print(j)
    elif inp_choice == 'b':
        break
    elif inp_choice == 'q':
        tag = False
        continue
    else:
        print('输入错误')
        continue

    # 开始第二层循环
    while tag:
        menu2 = menu1[inp_choice]  # 获取第一层key值内的字典,如之前输入北京,则menu2 = menu[北京] = 海淀....
        inp_mnue2_choice = input('请输入你要查看的城市名称,按b返回上一级,按q退出:')
        # 循环出第二层字典的key,并判断
        if inp_mnue2_choice in menu2:
            for j in menu2[inp_mnue2_choice]:
                print(j)
        elif inp_mnue2_choice == 'b':  # break 会退出本次的while,达到返回上级的效果
            break
        elif inp_mnue2_choice == 'q': # tag 等于 false,跳出后可以直接结束大循环
            tag = False
            continue
        else:
            print('输入错误')
            continue
    # 代码和上层差不多  就是重复
        while tag:
            menu3 = menu2[inp_mnue2_choice]
            inp_mnue3_choice = input('请输入你要查看的城市名称,按b返回上一级,按q退出:')
            if inp_mnue3_choice in menu3:
                for j in menu3[inp_mnue3_choice]:
                    print(j)
            elif inp_mnue3_choice == 'b':
                break
            elif inp_mnue3_choice == 'q':
                tag = False
                continue
            else:
                print('输入错误')
                continue
            # 当打印到最后时候,可以打印最低层提示
            while tag:
                print('这已经是最小单位')
                break
                
#这个练习因为for循环字典位置放错了, 返回上一级是返回了 但是没有打印字典。

转载于:https://www.cnblogs.com/faye12/p/11514889.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值