努力努力再努Li

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
# coding: utf-8

"""
作业:双色球选购
1 双色球(假设一共八个球,6个红球,球号1-32、2个蓝球,球号1-16)
2 确保用户不能重复选择,不能超出范围
3 用户输入有误时有相应的错误提示
4 最后展示用户选择的双色球的号码
升级需求:
1 一个while循环

思路:
# 定义变量,存放已选购的双色球
# 选购红球
# 选购蓝球
# 选购完成,打印
"""

# 打印欢迎语
print("************** 欢迎进入 牛魔王 双色球商店 ********")

# 已选购的红色球
selected_red_ball = []
# 已选购的蓝色球
selected_blue_ball = []
# 双色球选购完成状态,True为选购完成,False为选购未完成
selected_status = False

# 通过while循环 + if elif,完成双色球选购逻辑
while not selected_status:

    # 已选购红球数量
    selected_red_ball_len = len(selected_red_ball)
    # 已选购蓝球数量
    selected_blue_ball_len = len(selected_blue_ball)

    # 选购红球
    if selected_red_ball_len < 6:
        # 接收用户选购的红球号码
        user_select_ball = input("\033[1;31m请选择第[{0}]颗红色球:\033[0m".format(selected_red_ball_len + 1))
        # 判断球号是否为数字,如果是数字,则将user_select_ball转换为int类型
        if user_select_ball.isdigit():
            user_select_ball = int(user_select_ball)
            # 判断红球球号是否在1-32之间
            if user_select_ball < 1 or user_select_ball > 32:
                print("红球球号必须是1-32之间的数字")
                continue
            # 球号不可重复选择
            elif user_select_ball in selected_red_ball:
                print("{0}号球已经被选购过了".format(user_select_ball))
                continue
            # 满足选购条件,把球号添加到已选购红球列表
            else:
                selected_red_ball.append(user_select_ball)
                continue
        else:
            print("红球球号必须是1-32之间的数字")
            continue
    # 选购蓝球
    elif selected_blue_ball_len < 2:
        # 接收用户选购的号码
        user_select_ball = input("\033[1;34m请选择第[{0}]颗蓝色球:\033[0m".format(selected_blue_ball_len + 1))
        # 判断球号是否为数字,如果是数字,则将user_select_ball转换为int类型
        if user_select_ball.isdigit():
            user_select_ball = int(user_select_ball)
            # 判断蓝球球号是否在1-16之间
            if user_select_ball < 1 or user_select_ball > 16:
                print("蓝球球号必须是1-16之间的数字")
                continue
            # 球号不可重复选择
            elif user_select_ball in selected_blue_ball:
                print("{0}号球已经被选购过了".format(user_select_ball))
                continue
            # 满足选购条件,把球号添加到已选购蓝球列表
            else:
                selected_blue_ball.append(user_select_ball)
                continue
        else:
            print("蓝球球号必须是1-16之间的数字")
            continue
    # 选购完成,打印
    # 当红色球已选购6个,并且蓝色球已选购2个时,更新selected_status为True,并且打印展示
    elif selected_red_ball_len == 6 and selected_blue_ball_len == 2:
        selected_status = True
        print("\n您已选购的红球:{0}".format(selected_red_ball))
        print("您已选购的蓝球:{0}".format(selected_blue_ball))

# 打印结尾语
print("************** 选购结束,谢谢光临! **************")
# 代码执行效果截图如下:

 

 



posted on 2020-08-15 17:52  努力努力再努Liz  阅读(276)  评论(1编辑  收藏  举报