python写一个彩票中奖小游戏修订版本

先说规则:

        print("下面介绍双色球颜色规则:")
        print("一等奖,投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖")
        print("二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖")
        print("三等奖,投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖")
        print("四等奖,投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖")
        print("五等奖,投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖")
        print("六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖")
        print("前面六位为红色球号码,最后一位为蓝色球号码")

直接上全部代码:

import random  
import time
from datetime import datetime
  
class Lottery:  
    def __init__(self):  
        pass  
      
    
      
    def get_user_guesses(self):  
        guessed_numbers = []  
        for i in range(1,7):    
            while True:  # 无限循环,直到满足退出条件    
                a = int(input(f"请输入第{i}个值,范围是1-33 "))    
                if 1 <= a <= 33:  # 如果输入值在范围内,退出循环    
                    guessed_numbers.append(a)    
                    break    
                else:  # 如果输入值不在范围内,提示用户并继续循环    
                    print("输入值过小或过大")    
        while True:  # 无限循环,直到满足退出条件    
            b = int(input("请输入第7个值,范围是1-16 "))    
            if 1 <= b <= 16:  # 如果输入值在范围内,退出循环    
                guessed_numbers.append(b)    
                break    
            else:  # 如果输入值不在范围内,提示用户并继续循环    
                print("输入值过小或过大")  
        print(f"您的号码是{guessed_numbers}")    
        return guessed_numbers  
      
    def produce_winning_numbers(self):  
        now = datetime.now()
        nowtime = now.strftime("%Y-%m-%d %H:%M:%S")
        self.winning_numbers = []  
        for i in range(6):    
            self.winning_numbers.append(random.randint(1, 33))    
        self.winning_numbers.append(random.randint(1, 16))
        print(f"{nowtime}的中奖号码是{self.winning_numbers}")
        return self.winning_numbers  
    
    def judge(self, user_guesses, winning_numbers):  
        count=0
        for i in range(0,5):
            for j in range(0,5):
                if user_guesses[i]==winning_numbers[j]:
                     count=count+1
        count1=0
        if user_guesses[-1]==winning_numbers[-1]:
            count1=count1+1
        if count==6 and count1 ==1:
            print("恭喜中了一等奖")
        elif count==6:
            print("恭喜中了二等奖")
        elif count==5 and count1==1:
            print("恭喜中了三等奖")
        elif count==4 and count1 ==1:
            print("恭喜中了四等奖")
        elif count==3 and count1==1:
            print("恭喜中了五等奖")
        elif count1==1:
            print("恭喜中了六等奖")
        else :
            print("抱歉,没有中奖")
      
    def play(self):  
​
        print("下面介绍双色球颜色规则:")
        print("一等奖,投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖")
        print("二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖")
        print("三等奖,投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖")
        print("四等奖,投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖")
        print("五等奖,投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖")
        print("六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖")
        print("前面六位为红色球号码,最后一位为蓝色球号码")
        user_guesses = self.get_user_guesses()  
        self.produce_winning_numbers()  
        self.judge(user_guesses, self.winning_numbers)  
          
test = Lottery()  
test.play()
while True:
    time.sleep(5)

然后我们来看效果图:
在这里插入图片描述
点击:
在这里插入图片描述
最后添加了一个休眠函数给大家可以展示效果,手动删除右上角结束程序即可,希望大家喜欢

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity动画桢事件

1&#xff0c;使用原因 在新项目内部审核的时候&#xff0c;说什么动画节奏不匹配&#xff0c;所以决定用动画桢事件来处理技能释放。当释放技能的时候&#xff0c;先播放技能动画&#xff0c;然后再动画桢所在的时间戳执行技能的逻辑。 2&#xff0c;具体实现 1&#xff0c;…

openlayers+vue实现缓冲区

文章目录 前言一、准备二、初始化地图1、创建一个地图容器2、引入必须的类库3、地图初始化4、给地图增加底图 三、创建缓冲区1、引入需要的工具类库2、绘制方法 四、完整代码总结 前言 缓冲区是地理空间目标的一种影响范围或服务范围,是对选中的一组或一类地图要素(点、线或面…

跟着顶刊学科研绘图——nature配色篇(三)

只有朝着100分学习&#xff0c;才能想出80分的想法。 今日继续一起跟着nature培养科研绘图配色的美感。 三色对比 四色对比 五色对比 今日感悟 四色对比中&#xff0c;红蓝一定存在&#xff01; 关注公众号“魔方科研”&#xff0c;随时随地获取您想要的科研信息。 参考文献…

虹科数字化与AR部门升级为安宝特AR子公司

致关心虹科AR的朋友们&#xff1a; 感谢您一直以来对虹科数字化与AR的支持和信任&#xff0c;为了更好地满足市场需求和公司发展的需要&#xff0c;虹科数字化与AR部门现已升级为虹科旗下独立子公司&#xff0c;并正式更名为“安宝特AR”。 ”虹科数字化与AR“自成立以来&…

《佛法修学概要》005-008集研讨

5、我們怎樣才能做到不隨妄轉&#xff0c;找修行的捷徑&#xff1f; 如果說要進步快&#xff0c;你要先找到你生命的原點&#xff0c;就是《楞嚴經》說的&#xff0c;你從什麼地方來&#xff1f;這個道理太重要了&#xff01;就是你要住在什麼角度。如果你住在妄想的角度來處理…

第十九周周报

文章目录 摘要文献阅读DeepHuman: 3D Human Reconstruction from a Single Image(ICCV 2019)贡献摘要网络结构总结 PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization贡献摘要网络结构总结 Animated 3D human avatars from a single imag…

已解决Error:AttributeError: module ‘numpy‘ has no attribute ‘bool‘.

文章目录 引言报错分析解决方案1&#xff1a;降低NumPy版本解决方案2&#xff1a;更改NumPy源码 结尾 引言 在Python编程的世界里&#xff0c;NumPy无疑是一个不可或缺的库。它不仅在处理大规模数值计算中发挥着核心作用&#xff0c;而且为众多开发者提供了强大的支持。然而&a…

自然语言处理--双向匹配算法

自然语言处理作业1--双向匹配算法 一、概述 双向匹配算法是一种用于自然语言处理的算法&#xff0c;用于确定两个文本之间的相似度或匹配程度。该算法通常使用在文本对齐、翻译、语义匹配等任务中。 在双向匹配算法中&#xff0c;首先将两个文本分别进行处理&#xff0c;然后…

Redis核心技术与实战【学习笔记】 - 1.Redis为什么高性能

作为键值数据库&#xff0c;Redis 的应用非常广泛&#xff0c;如果你是后端工程师&#xff0c;我猜你出去面试&#xff0c;八成都会被问到与它相关的性能问题。比如说&#xff0c;为了保证数据的可靠性&#xff0c;Redis 需要在磁盘上读写 AOF 和 RDB&#xff0c;但在高并发场景…

WPF入门到跪下 第十一章 Prism(四)View与ViewModel的自动关联

View与ViewModel的自动关联 一、ViewModelLocator 在学习MvvmLight框架时&#xff0c;也使用了ViewModelLocator类。但在MvvmLight框架中&#xff0c;ViewModelLocator只是一个自定义类&#xff0c;与框架无关&#xff0c;目的就是初始化IoC容器。而在Prism框架中则不同&…

机房及设备安全智慧监管AI+视频方案的设计和应用

一、背景分析 随着互联网的迅猛发展&#xff0c;机房及其配套设施的数量持续攀升&#xff0c;它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石&#xff0c;机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营&#xff0c;同时也…

elementui-table组件列表中的tooltip内容过长超出屏幕换行显示

elementui-table组件列表中的tooltip内容过长超出屏幕换行显示 el-table列属性中带的有show-overflow-tooltip&#xff0c;可以设置内容超出列宽度显示为…&#xff0c;并且有tooltip提示&#xff0c;但是内容过多时&#xff0c;提示会超出屏幕&#xff1a; 但是el-table组件…

Vue 3.0中Treeshaking特性(详细解析)

文章目录 一、是什么二、如何做Vue2 项目Vue3 项目 三、作用参考文献 一、是什么 Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术&#xff0c;专业术语叫 Dead code elimination 简单来讲&#xff0c;就是在保持代码运行结果不变的前提下&#xff0c;去除…

逆向 jsvmp 之_signature实例

预备:a.v_jstools 插件,用来解析混淆 b.浏览器启动本地替换 c.nodejs 用来快速调试js 准备好后开搞: 1.首先找到 jsvmp入口点 2.用v_jstools解析混淆,再次刷新,进入入口,找到循环点 3.打日志,分析代码功能

察势而动,破界争先!COSP深圳户外电源展2024重磅开幕!

随着国内疫情逐渐消退&#xff0c;中央政府积极出台了一系列恢复民生的政策。其中&#xff0c;“地摊经济”的火爆&#xff0c;成为了人们茶余饭后的热门话题。这个政策的出台&#xff0c;不仅推动了地摊经济的发展&#xff0c;也让户外电源市场迎来了新的机遇。 随着户外电源产…

Git标签推送

标签默认属于本地分支&#xff0c;推送分支的时候并不会上传。需要自己手动推送 通过命令 git push origin <tagname>推送指定的标签 通过命令git push origin --tags批量推送所有的标签 在VS里打开git命令行窗口的方法&#xff1a;Git更改-操作-打开命令行提示符 对于…

【java】常见的面试问题

目录 一、异常 1、 throw 和 throws 的区别&#xff1f; 2、 final、finally、finalize 有什么区别&#xff1f; 3、try-catch-finally 中哪个部分可以省略&#xff1f; 4、try-catch-finally 中&#xff0c;如果 catch 中 return 了&#xff0c;finally 还会执行吗&#…

【C++】入门

结束数据结构初阶的学习后&#xff0c;很高兴继续学习C&#xff0c;欢迎大家一起交流~ 目录 C关键字 命名空间 命名空间定义 命名空间使用 C输入&输出 缺省参数 缺省参数概念 缺省参数分类 函数重载 函数重载概念 C支持函数重载的原理--名字修饰 引用 引用概念…

MacOS平台翻译OCR软件,双管齐下,还可自定义插件,为其添砖加瓦!

小编昨天为大家分享了Windows系统下的一款功能强大且免费的 OCR 开源工具 Umi-OCR。 今天则为大家推荐一款 MacOS系统下的一款 翻译 OCR 多功能双管齐下的桌面应用软件 Bob。这款软件虽然也上线了GitHub&#xff0c;但它不是一款开源软件&#xff0c;仓库只是作者为了用户反馈…

线程池调优,深入理解,线程池各个参数的含义(keepAliveTime 展开说说?)

线程池调优&#xff0c;深入理解&#xff0c;线程池各个参数的含义&#xff08;keepAliveTime 展开说说&#xff1f;&#xff09;目录 线程池核心组件核心线程、最大线程、阻塞队列的关系&#xff08;重点&#xff09;线程池调优&#xff08;运行流程&#xff09;keepAliveTime…