双色球 | python

news2024/9/20 22:26:02

1. 玩法规则

“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。红色球号码从 1—33 中选择,蓝色球号码从 1—16 中选择。 球的数字匹配数量和颜色决定了是否中奖。

 

 

2. 需求

  1. 生成本期双色球中奖号码。(注意:1.生成的红球随机有序且不可重复、2.蓝球和红球的随机范围不同且蓝球允许和红球重复)

  2. 两种产生数据方式

      2.1 通过控制台输入竞猜号码

      2.2 自动生成

    3.记录红球、蓝球竞猜正确球的数量,并根据获奖条件输出竞猜结果和本期双色球号码

 3. 代码实现

"""
1、打印欢迎界面
2、让用户选择 (选的不对一直选  死循环)
3、根据用户选择 是机选还是手选
   两个方法:机选方法
            手选方法
   机器通过机选方法生成一个中奖号码
4、根据中奖号码和用户的号码进行比对  --方法
5、根据情况,获得奖项
6、打印用户的抽奖情况
"""


# 此方法用于获取用户自选的双色球,返回值是set集合
def getCustomBalls():
    while True:
        print("开始输入红球的值:")
        str01 = input("请输入6个1~33的数字(使用空格隔开):")
        list01 = str01.split()  # []
        list01 = [int(x) for x in list01]
        set01 = set(list01)  # {'3', '2', '1', '4', '6', '5'}
        if len(set01) < 6:
            print("您输入的数字不够,或者有重复,请重新输入")
            continue
        print(set01)
        list01 = [x for x in set01 if 1 <= int(x) <= 33]
        if len(list01) < 6:
            print("有超过范围的数字,请重新输入")
            continue
        while True:
            print("开始输入蓝球的数字:")
            num = int(input("请输入1个1~16的数字:"))
            if 1 <= num <= 16:
                list01.append(num)
                break
            else:
                print("篮球的数值不对,请重新输入")
                continue
        return list01


# 此方法用于随机获取一组双色球,返回值是set集合
import random


def getRandomBalls():
    list01 = list()
    while len(list01) < 6:
        num = random.randint(1, 33)
        if num not in list01:
            list01.append(num)
    lanNum = random.randint(1, 16)
    list01.append(lanNum)
    return list01


def chouJiang(user_balls, jiang_balls):
    """
    红色和蓝色分来[切片],求红球之间的交集,在求长度
    """
    user_hong = user_balls[:6]
    jiang_hong = jiang_balls[:6]
    print(user_hong, jiang_hong)
    print(type(user_hong))  # <class 'list'>
    s1 = set(user_hong)  # 将list 转换为 set
    s2 = set(jiang_hong)
    print(s1 & s2)
    s3 = s1 & s2
    user_lan = user_balls[-1]
    jiang_lan = jiang_balls[-1]
    num_lan = 0
    num_hong = len(s3)
    if user_lan == jiang_lan:
        num_lan = 1
    jiang_level = 0
    if num_hong == 6 and num_lan == 1:
        jiang_level = 1
    if num_hong == 6 and num_lan == 0:
        jiang_level = 2
    if num_hong == 5 and num_lan == 1:
        jiang_level = 3
    if (num_hong == 4 and num_lan == 1) or (num_hong == 5 and num_lan == 0):
        jiang_level = 4
    if (num_hong == 4 and num_lan == 0) or (num_hong == 3 and num_lan == 1):
        jiang_level = 5
    if (num_hong == 2 and num_lan == 1) or (num_hong == 1 and num_lan == 1) or (num_hong == 0 and num_lan == 1):
        jiang_level = 6
    return jiang_level


def getJiangName(jiangLevel):
    match jiangLevel:
        case 0:
            return "没中奖", 0
        case 1:
            return "一等奖", 5000000
        case 2:
            return "二等奖", 100000
        case 3:
            return "三等奖", 3000
        case 4:
            return "四等奖", 200
        case 5:
            return "五等奖", 10
        case 6:
            return "六等奖", 5


def showMainScreen():
    print("*" * 30, end = " ")
    print("欢迎来到大数据双色球系统", end="")
    print("*" * 30)
    user_balls = set()
    while True:
        choiceNum = int(input("请输入您的选择:1 自选 2机选 0退出系统:"))
        if choiceNum in (0, 1, 2):
            break
        else:
            print("您的输入有无,请重新输入!")
    match choiceNum:
        case 0:
            exit(0)
        case 1:
            # 自选
            user_balls = getCustomBalls()
        case 2:
            # 机选
            user_balls = getRandomBalls()
    print("用户获得的彩排是:")
    print(user_balls)
    # 中奖号码,随机获取的
    random_balls = getRandomBalls()
    # 这个方法是比对用户的彩票和中奖彩排之间的关系
    jiangLevel = chouJiang(user_balls, random_balls)
    jiangName, jiangMoney = getJiangName(jiangLevel)
    print(f"您的选择是:{user_balls}")
    print(f"中奖号码是:{random_balls}")
    if jiangLevel == 0:
        print("很遗憾,本次没有中奖,希望下次中奖!")
    else:
        print("恭喜您,中了%s,中奖金额高达%d元" % (jiangName, jiangMoney))


showMainScreen()

4. 运行结果

自选:

机选:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1911684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vuforia AR篇(八)— AR塔防上篇

目录 前言一、设置Vuforia AR环境1. 添加AR Camera2. 设置目标图像 二、创建塔防游戏基础1. 导入素材2. 搭建场景3. 创建敌人4. 创建脚本 前言 在增强现实&#xff08;AR&#xff09;技术快速发展的今天&#xff0c;Vuforia作为一个强大的AR开发平台&#xff0c;为开发者提供了…

Docker-compse的应用

1 docker-compose # 使用了docker 面临一个比较大的问题&#xff0c;如果一个djagno项目&#xff0c;使用mysql&#xff0c;redis&#xff0c;不要一次性把所有服务都放到一个容器中&#xff0c;每个服务一个容器&#xff0c;批量的管理多个容器&#xff0c;比较难以操作&…

昇思25天学习打卡营第1天|小试牛刀

这里写自昇思25天学习打卡营第1天|小试牛刀定义目录标题 昇思25天学习打卡营第1天学习了初学入门之基本介绍。了解了昇思MindSpore和华为昇腾AI全栈。训练营中的教程丰富&#xff0c;有初学入门、应用实践和量子计算等。学习打卡营是很好的提升自己的机会。 昇腾计算&#xff…

前端图表库G2快速上手

文档地址&#xff1a; https://g2-v3.antv.vision/zh/docs/manual/getting-started/ https://g2.antv.antgroup.com/ 安装&#xff1a; pnpm i antv/g2在vue3中使用&#xff1a; <script setup> import {Chart} from antv/g2; import {onMounted} from "vue"…

生成多个ssh访问不同git

如果&#xff0c;你的git代码仓库&#xff0c;比如说腾讯云coding&#xff0c;通过ssh秘钥访问&#xff0c;一直用的好好的&#xff0c;有一天&#xff0c;你又增加一个aliyun云效的代码仓库&#xff0c;又配置了aliyun云效的秘钥并且&#xff0c;根据aliyun云效的官方文档上传…

【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】

一、通过虚拟机搭建Linux环境-CnetOS 1、安装virtualbox&#xff0c;和Vmware是一样的&#xff0c;只是box更轻量级 1&#xff09;需要注意内存选择&#xff0c;4G 2、启动完成后&#xff0c;需要获取服务器IP地址 命令 ip add 服务器IP地址 通过本地的工具&#xff0c;进…

后端——全局异常处理

一、老办法try-catch 当我们执行一些错误操作导致程序报错时&#xff0c;程序会捕捉到异常报错&#xff0c;这个异常会存在一个Exception对象里 那我们在spring boot工程开发时&#xff0c;当我们执行一个sql查询时报错了&#xff0c;那就会从最底层的Mapper层捕捉到Exceptio…

三相感应电机的建模仿真(3)基于ABC相坐标系Level2 S-Fun以及定子串不对称电抗起动过程仿真分析

1. 概述 2. 三相感应电动机状态方程式 3. 基于Level2 S-Function的仿真模型建立 4. 动态分析实例 5. 总结 6. 参考文献 1. 概述 三相感应电机自然坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时间按正弦规律变化),将其用…

工作手机监管系统销售防飞单保护企业资源

在竞争激烈的市场环境中&#xff0c;企业的每一笔交易都承载着发展的希望与未来的蓝图。然而&#xff0c;飞单现象如同暗流涌动&#xff0c;悄然侵蚀着企业的利润根基&#xff0c;威胁着团队的凝聚力与客户的信任。为了构建更加稳固的业务防线&#xff0c;我们隆重介绍——百川…

Instruct-GS2GS:通过用户指令编辑 GS 三维场景

Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构&#xff0c;将基于 NeRF 的三维场景编辑方法迁…

gpt-4o看图说话-根据图片回答问题

问题&#xff1a;中国的人口老龄化究竟有多严重&#xff1f; 代码下实现如下&#xff1a;&#xff08;直接调用openai的chat接口&#xff09; import os import base64 import requests def encode_image(image_path): """ 对图片文件进行 Base64 编码 输入…

“郑商企航”暑期社会实践赴美丽美艳直播基地开展调研

马常旭文化传媒网讯&#xff08;记者张明辉报道&#xff09;导读&#xff1a;2024 年 7 月 3 日&#xff0c;商学院暑期社会实践团“郑商企航”在河南省郑州市新密市岳村镇美丽美艳直播基地&#xff0c;展开了一场意义非凡的考察活动&#xff0c;团队成员深度调研了直播基地的产…

昇思MindSpore学习总结十二 —— ShuffleNet图像分类

当前案例不支持在GPU设备上静态图模式运行&#xff0c;其他模式运行皆支持。 1、ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达…

读书笔记-Java并发编程的艺术-第4章(Java并发编程基础)-第3节(线程间通信)

文章目录 4.3 线程间通信4.3.1 volatile和synchronized 关键字4.3.2 等待/通知机制4.3.3 等待/通知的经典范式4.3.4 管道输入 / 输出流4.3.5 Thread.join()的使用4.3.6 ThreadLocal的使用 4.3 线程间通信 线程开始运行&#xff0c;拥有自己的栈空间&#xff0c;就如同一个脚本…

简单的找到自己需要的flutter ui 模板

简单的找到自己需要的flutter ui 模板 网站 https://flutterawesome.com/ 简介 我原本以为会很难用 实际上不错 很简单 打开后界面类似于,右上角可以搜索 点击view github 相当简单 很oks

卷积神经网络——LeNet——FashionMNIST

目录 一、整体结构二、model.py三、model_train.py四、model_test.py GitHub地址 一、整体结构 二、model.py import torch from torch import nn from torchsummary import summaryclass LeNet(nn.Module):def __init__(self):super(LeNet,self).__init__()self.c1 nn.Conv…

Java--instanceof和类型转换

1.如图&#xff0c;Object&#xff0c;Person&#xff0c;Teacher&#xff0c;Student四类的关系已经写出来了&#xff0c;由于实例化的是Student类&#xff0c;因此&#xff0c;与Student类存在关系的类在使用instanceof时都会输出True&#xff0c;而无关的都会输出False&…

Vatee万腾平台:创新科技,驱动未来

在科技日新月异的今天&#xff0c;每一个创新的火花都可能成为推动社会进步的重要力量。Vatee万腾平台&#xff0c;作为科技创新领域的佼佼者&#xff0c;正以其卓越的技术实力、前瞻性的战略眼光和不懈的探索精神&#xff0c;驱动着未来的车轮滚滚向前。 Vatee万腾平台深知&am…

STM32实战篇:按键控制LED

按键控制LED 功能要求 有两个按键&#xff0c;分别控制两个LED灯。当按键按下后&#xff0c;灯的亮暗状态改变。实物如下图所示&#xff1a; 由图可知&#xff0c;按键一端直接接地&#xff0c;故另一端所对应IO引脚的输入模式应该为上拉输入模式。 实现代码 #include "…

WEB安全基础:网络安全常用术语

一、攻击类别 漏洞&#xff1a;硬件、软件、协议&#xff0c;代码层次的缺陷。 后⻔&#xff1a;方便后续进行系统留下的隐蔽后⻔程序。 病毒&#xff1a;一种可以自我复制并传播&#xff0c;感染计算机和网络系统的恶意软件(Malware)&#xff0c;它能损害数据、系统功能或拦…