作业:双色球选购程序 的两种写法
-
双色球选购程序
'''假设双⾊色球有八个球:红球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") #结束循环