猜年龄游戏二阶段(循环嵌套)

# 要求:
# 登录之后,才能游戏。3次登录机会。
# 猜年龄,3次机会。失败后可以选择是否继续。
# 猜对后可以领取奖品。两次。不领取可以直接退出

user_info = {
    'username': 'nick',
    'pwd': '123',
    'login_status': False
}
age = 18
login_count = 3
guess_count = 3
prize_count = 2

prize_list = {
    0: 'buwawa',
    1: 'aoteman',
    2: 'python从入门到放弃'
}

while login_count:
    username = input('请输入账号:').strip()
    pwd = input('请输入密码:').strip()
    if username == user_info['username'] and pwd == user_info['pwd']:
        print('登录成功')
        user_info['login_status'] = True
        break
    else:
        login_count -= 1
        print(f'登录失败,你还有{login_count}次机会,请重新输入账号密码。')

if user_info['login_status']:
    while guess_count:
        inp_age = input('请输入你猜想的年龄:').strip()
        if not inp_age.isdigit():
            guess_count -= 1
            print(f'你还有{guess_count}次机会。请输入数字')
            continue

        inp_age = int(inp_age)
        if inp_age != age:
            guess_count -= 1
            print(f'猜错了。你还有{guess_count}次机会。')
            if not guess_count:
                choice1 = input('继续输入‘y’或‘Y’,退出输入其他字符')

                if choice1 in ['y', 'Y']:
                    guess_count = 3
                    continue
                break
            continue
        else:
            print('恭喜你猜对了。你可以从下列奖品中领取两份。')

            while prize_count:
                print(f"""奖品列表:
                {prize_list}
                输入不存在的序号或者非数字时,将直接退出。
                """)
                choice2 = input('请输入你想领取的奖品的序号:').strip()

                if not choice2.isdigit():
                    print('退出')
                    break

                choice2 = int(choice2)

                if choice2 not in prize_list.keys():
                    print('退出')
                    break

                print(f'你领取了{prize_list[choice2]}。')
                prize_count -= 1
            break

原文地址:https://www.cnblogs.com/chenych/p/10937332.html