[Python学习日记-12] 双色球彩票程序练习(使用到列表、判断、循环等)

[Python学习日记-12] 双色球彩票程序练习

简介

题目

答案与解析

简介

本章的练习将会使用到前面学习的知识点,用于检测前面学习的效果。

题目

双色球彩票选购程序:

  1. 先让用户依次选择6个红球,再选择2个蓝球,最后统一打印用户选择的球号。
  2. 确保用户不能选择重复的,选择的数不能超出范围。

程序效果如下:

答案与解析

程序代码:

python 复制代码
# -*- encoding: utf-8 -*-
count = 0
red_count = 1
blue_count = 1
red_ball = []
blue_ball = []
print("Welcome to JoveZou lottery station")

while count < 8:
    """
    双色球游戏,选择红球
    """
    if red_ball.__len__() < 6:
        # 防止不合法的输入
        # try:
            # input().strip()可已去掉输入的字符前后的空格,防止出错
            select_red_ball = input("\033[31;1m[" + str(red_count) + "]select red ball:\033[0m").strip()
            # 判断用户输入的字符是否完全为数字
            if select_red_ball.isdigit():
                # 判断选择的号码是否合法
                if int(select_red_ball) in red_ball:  # 判断是否已经选过
                    print("number " + select_red_ball + " is already exist in red ball list")
                elif 1 <= int(select_red_ball) <= 32:  # 判断号码是否在规定范围内
                    red_ball.append(int(select_red_ball))
                    count += 1
                    red_count += 1
                    # print(red_ball)
                else:  # 若输入的号码不合法则提示用户
                    print("only can select n between 1-32")
            else:
                print("Input is all number.")
        # except:
        #     print("号码输入错误,请重新输入")
    """
    双色球游戏,选择蓝球
    在选择完红球后
    """
    if red_ball.__len__() == 6 and blue_ball.__len__() < 2:  # 需要先判断红球是否已经选完了
        # 防止不合法的输入
        # try:
            # input().strip()可已去掉输入的字符前后的空格,防止出错
            select_blue_ball = input("\033[34;1m[" + str(blue_count) + "]select blue ball:\033[0m").strip()
            # 判断用户输入的字符是否完全为数字
            if select_blue_ball.isdigit():
                # 判断选择的号码是否合法
                if int(select_blue_ball) in blue_ball:  # 判断是否已经选过
                    print("number " + select_blue_ball + " is already exist in blue ball list")
                elif 1 <= int(select_blue_ball) <= 16:  # 判断号码是否在规定范围内
                    blue_ball.append(int(select_blue_ball))
                    count += 1
                    blue_count += 1
                    # print(blue_ball)
                else:  # 若输入的号码不合法则提示用户
                    print("only can select n between 1-16")
            else:
                print("Input is all number.")
        # except:
        #     print("号码输入错误,请重新输入")
# 输出用户所选号码
print("Red ball: ", red_ball)
print("Blue ball: ", blue_ball)
print("Good Luck.")

代码解析:

1、变量的定义

count # 用于记录总共输入了多少个有效数字

red_count # 用于记录红球输入了几个

blue_count # 用于记录篮球输入了几个

red_ball # 用于记录红球具体输入的数字,用列表存储

blue_ball # 用于记录蓝球具体输入的数字,用列表存储

2、首先使用 while 循环做一个总体的循环,因为我们需要输入的全部数字为8个,其中我们的计数变量为 count,每当有数据输入成功后即加1

3、使用 if 来判断红蓝球是否已经选完

red_ball.len() 和 blue_ball.len() 是读取对应的列表长度的,题目中只要求红球选6个蓝球选2个,当发现没有选完时就可以进入该 if

4、最后在第3点创建的 if 当中嵌套 if 判断用户输入是否为合法

复制代码
select_blue_ball.isdigit() 判断输入是否为数字
复制代码
int(select_blue_ball) in blue_ball 判断输入是否已经在列表中了
复制代码
1 <= int(select_blue_ball) <= 16 判断输入是否在规定范围内,如果在规定范围内则把它加入到列表中,并把变量 count 和对应球色的统计变量(以蓝色为例:blue_count)加1,红色球也是同样的操作
  • 若不合法则为提示相关信息提示用户
相关推荐
封奚泽优5 分钟前
使用Python绘制节日祝福——以端午节和儿童节为例
人工智能·python·深度学习
viperrrrrrrrrr718 分钟前
大数据学习(125)-hive数据分析
大数据·学习
干啥都是小小白20 分钟前
话题通信之python实现
python·机器人·ros
仟濹40 分钟前
「数据采集与网络爬虫(使用Python工具)」【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·爬虫·python·数据挖掘·数据分析
明月看潮生1 小时前
青少年编程与数学 02-020 C#程序设计基础 14课题、程序调试
开发语言·青少年编程·c#·编程与数学
水银嘻嘻1 小时前
03 APP 自动化-定位元素工具&元素定位
python·appium·自动化
蹦蹦跳跳真可爱5891 小时前
Python----目标检测(《用于精确目标检测和语义分割的丰富特征层次结构》和R-CNN)
人工智能·python·深度学习·神经网络·目标检测·cnn
抽风的雨6102 小时前
【python深度学习】Day 42 Grad-CAM与Hook函数
开发语言·python·深度学习
Mikhail_G2 小时前
Python应用for循环临时变量作用域
大数据·运维·开发语言·python·数据分析
moxiaoran57532 小时前
uni-app学习笔记十八--uni-app static目录简介
笔记·学习·uni-app