python学习第7天

学习了python基础知识已经七天了,囊括 了很多知识点,今日老师带着我们理了一遍高级游戏的程序逻辑,把我们这几天学习的东西用上了,接下要真正得成为一名码农了,好好纪念一下
首先说一下该游戏的功能,大咖如果觉得有更好的代码精简,可以探讨一下

编写猜年龄游戏,有以下要求:

  1. 可能会有用户会在输入年龄之后不小心输入空格,如18   ,请做处理
  2. 可能会有用户会恶意输入导致程序报错,如逗你玩呀,请做处理
  3. 如果用户3次没有猜对,可以选择继续玩或退出(自定义退出条件)
  4. 如果用户猜对了,可以在以下奖品中选择两件奖品(一次只能选择一件奖品):{0:'布娃娃',1:'变形金刚',2:'奥特曼',3:'<python从入门到放弃>'}
  5. 用户选择奖品后退出程序,用户也可以不选择奖品直接退出程序。
age = 18  # 答案
count = 0  # 游戏次数控制
prize_dict = {
    0:'布娃娃',
    1:'变形金刚',
    2:'奥特曼',
    3:'<Python从入门到放弃>'
}

# 核心代码
while count < 3:
    inp_age = input('请输入你的年龄>>>').strip()  # 与用户交互

    # 判断用户是否骚扰
    if not inp_age.isdigit():
        print('傻逼,你的年龄输错了')
        continue

    inp_age_int = int(inp_age)

    # 核心逻辑,判断年龄
    if inp_age_int == age:
        print('猜对了')
        
        print(prize_dict)  # 打印奖品
        
        # 获取两次奖品
        for i in range(2):
            prize_choice = input('请输入你想要的奖品,如果不想要,则输入"n"退出!!!').strip()  # 与用户交互获取奖品
            
            # 判断是否需要奖品
            if prize_choice != 'n':
                print(f'恭喜你获得奖品: {prize_dict[int(prize_choice)]}')
            else:
                break
       break
       
    elif inp_age_int < age:
        print('猜小了')
    else:
        print('猜大了')
    
    count += 1  # 成功玩一次游戏
    
    if count != 3:
        continue
        
    again_choice = input('是否继续游戏,继续请输入"Y",否则任意键直接退出.').strip() # 交互是否再一次

    # 判断是否继续
    if again_choice == 'Y':
        count = 0