Fork me on GitHub

day-06 作业

day06 作业

1. 猜年龄

要求:

1.给定年龄,用户可以猜三次年龄

2.年龄猜对,让用户选择两次奖励

3.用户选择两次奖励后可以退出

思路:

1.先实现猜年龄的功能

2.增加年龄猜对,让用户选择两次奖励,

3.每次选择后都更新奖品清单,每次选择都可以随时退出

4.两次选择结束后,退出游戏

5.给游戏设置最大次数为3次,达到3次后让用户选择是否重新开始游戏

实现代码:

age = 18  # 游戏答案
prize_dic = {0: '棒棒糖', 1: '酸奶', 2: '口香糖'}  # 奖品清单
count = 0  # 控制次数
while count < 3:

    # 获取用户输入信息
    user_inp = input('请输入你猜的年龄:')
    user_inp_int = int(user_inp)

    # 判断用户输入的信息
    if user_inp_int > age:
        print('猜大了>_<')
    elif user_inp_int == age:
        print('猜对啦^_^')
        print('你有两次选择奖品的机会:')

        user_choice = input("选择奖品请按'Y',退出请按任意键: ")
        if user_choice == 'Y':
            print(f'奖品清单:{prize_dic}')

            # 判断用户选择的第一个奖品
            prize_choice = input("请选择一个奖品序号,或输入'N'退出: ")
            if prize_choice != 'N':
                print(f'恭喜你获得了{prize_dic[int(prize_choice)]}!')
                del prize_dic[int(prize_choice)]

                # 判断用户选择的第二个奖品
                print(f'剩余奖品清单:{prize_dic}')
                prize_choice = input("请在剩余的奖品中选择一个序号,或输入'N'退出: ")
                if prize_choice != 'N':
                    print(f'恭喜你获得了{prize_dic[int(prize_choice)]}!')
                    print('游戏结束!')
                    del prize_dic[int(prize_choice)]
                else:
                    break
            else:
                break
        else:
            break
        break
    else:
        print('猜小了>_<')
    count = count + 1
    if count != 3:
        continue
    # 判断是否重新开始游戏
    again_choice = input('是否继续游戏,继续请输入"Y",否则任意键直接退出.')
    if again_choice == 'Y':
        count = 0

2. 三级菜单

要求:

1.打印省、市、县三级菜单

2.可返回上一级

3.可随时退出程序

思路:

1.先打印一级目录

2.当选择一个一级目录的内容,打印选择内容的二级目录

3.当选择一个二级目录的内容,打印选择内容的三级目录

3.当选择一个三级目录的内容,打印选择内容

4.让每层程序循环起来

5.增加返回上层程序的条件、增加每层中退出程序的条件

实现代码:

contents = {'浙江省': {'杭州市': {'西湖区': {}, '滨江区': {}, '萧山区': {}},
                    '宁波市': {'余姚市': {}, '慈溪市': {}, '象山县': {}},
                    '温州市': {'乐清市': {}, '永嘉县': {}, '平阳县': {}}},
            '江苏省': {'南京市': {'玄武区': {}, '秦淮区': {}, '鼓楼区': {}},
                    '无锡市': {'滨湖区': {}, '梁溪区': {}, '新吴区': {}},
                    '徐州市': {'云龙区': {}, '鼓楼区': {}, '贾汪区': {}}},
            '广东省': {'广州市': {'越秀区': {}, '荔湾区': {}, '海珠区': {}},
                    '深圳市': {'福田区': {}, '罗湖区': {}, '南山区': {}},
                    '珠海市': {'香洲区': {}, '斗门区': {}, '金湾区': {}}}
            }
# 查询行政区划

flag = True  # 控制退出程序
while flag:

    user_input1 = input("是否查询城市的行政区划(请输入'Y'进行查询或按任意键退出):")

    # 获取一级目录
    if user_input1 == 'Y':
        print('\t你可以查询以下省份:')
        for i in contents:
            print(f'\t\t{i}')

        # 获取二级目录
        while flag:
            user_input2 = input("\t\t请输入想要查询的省份(按'b'返回上一层,按'q'退出): ")
            if user_input2 in contents:
                for i in contents[user_input2]:
                    print(f'\t\t\t{i}')
            elif user_input2 == 'b':
                break
            elif user_input2 == 'q':
                flag = False
            else:
                print('\t\t未收录。')
                continue

            # 获取三级目录
            while flag:
                user_input3 = input("\t\t\t请输入想要查询的区域(按'b'返回上一层,按'q'退出): ")
                if user_input3 in contents[user_input2]:
                    for i in contents[user_input2][user_input3]:
                        print(f'\t\t\t\t{i}')
                elif user_input3 == 'b':
                    break
                elif user_input3 == 'q':
                    flag = False
                else:
                    print('\t\t\t信息不全。')
                    continue
    else:
        break
posted @ 2019-09-14 18:30  Yugaliii  阅读(97)  评论(0编辑  收藏  举报