作业:双色球选购程序 的两种写法

  1. 双色球选购程序

    '''假设双⾊色球有八个球:红球6个、蓝球2个
    红球的范围:1-32,蓝球的范围是1-163
    红球号码不不能重复出现
    蓝球号码不不能重复出现
    先让⽤用户依次选择6个红球,再选择2个蓝球,最后统一打印用户选择的球号。确保用户不能选择重复的,选择的数不能超出范围。
    '''
    #思路分析
    #先设两个红/蓝空列表 用于存放用户号码
    #因为后期需要对比数字,所以需要将用户的字符转换成数字.1先判断是否为数字,2转换数字
    #用if语句解决限制用户数字超出范围. user in red  表示red列表中含有user的值.
    #用whil 和 len(red) 获得列表内值的长度来控制循环.
    #######下面的方法将程序分成了两个while循环.+#####
    
    red = []
    blue = []  #先设两个红/蓝空列表 用于存放用户号码
    while len(red)< 6:      #利用len来计算red表中的数量,达到6个值后停止循环.
        user = input("红色球号>>>").strip()    #输入后直接去两端的空格
        if user.isdigit():     #如果输入为数字
            user = int(user)   #将字符转换成数字
            if user > 0 and user < 33 and user not in red:  #只能输入1-32以内的数 且输入的数字不存在列表中.
                red.append(user)  #将值 加入到列表中.
            else:
                print("输入数字超出范围,重新输入")
                #continue
        else:
            print("请输入纯数字,重新输入")    #这个if语句是防止用户输入非数字.
    while len(blue) < 2:
        user = input("蓝色球号>>>").strip()
        if user.isdigit():
            user = int(user)
            if user < 1 or user >16:     #另外一种写法,如果超出重输入,又如果号码以存在,重输入.否则加入列表
                print("数字超出范围.")
            elif user in  blue:
                print("该号码以存在")
            else:
                blue.append(user)
        else:
            print('请输入纯数字,重新输入')
    print("红色球号码为:",red,"蓝色球号码为",blue)
    ##双色球的另一种写法###加入了编号和颜色
    red = []
    blue = []
    while True:
        if len(red) < 6 :
            user = input("\033[31m[%s]红色球号>>>\033[0m" % (len(red) + 1)).strip()   #\033[颜色编号   \033[0m结尾
            if user.isdigit():     #如果输入为数字
                user = int(user)   #将字符转换成数字
                if user > 0 and user < 33 and user not in red:  #只能输入1-32以内的数 且输入的数字不存在列表中.
                    red.append(user)  #将值 加入到列表中.
                else:
                    print("输入数字超出范围,重新输入")
                #continue
            else:
                print("请输入纯数字,重新输入")    #这个if语句是防止用户输入非数字.
        elif len(blue) < 2:
            user = input("\033[34m[%s]蓝色球号>>>\033[0m"% (len(blue)+ 1)).strip()
            if user.isdigit():
                user = int(user)
                if user < 1 or user >16:     #另外一种写法,如果超出重输入,又如果号码以存在,重输入.否则加入列表
                 print("数字超出范围.")
                elif user in  blue:
                 print("该号码以存在")
                else:
                  blue.append(user)
            else:
                print('请输入纯数字,重新输入')
        else:                                   #这里是第一个if循环语句,如果red <6 ,执行下面语句,再如果blue <2 执行下面语句.否则打印并用exit结束.
             print("红色球号码为:",red,"蓝色球号码为",blue)
             exit("GOOD LUCK")            #结束循环
    

猜你喜欢

转载自www.cnblogs.com/Dtime/p/11055929.html
今日推荐