Python抽奖系统-----控制台显示

news2024/11/27 1:27:48

以下是一个 Python 抽奖系统,其中包含更多的功能,如添加参与者、多轮抽奖、保存获奖者名单等:

import random
import os

def load_participants():
    try:
        with open("participants.txt", "r") as file:
            participants = file.read().splitlines()
        return participants
    except FileNotFoundError:
        return []

def save_participants(participants):
    with open("participants.txt", "w") as file:
        file.write("\n".join(participants))

def draw_winner(participants):
    if not participants:
        print("没有足够的参与者来进行抽奖。请添加参与者后再试。")
        return

    winner = random.choice(participants)
    print("恭喜 {} 获奖!".format(winner))
    return winner

def main():
    participants = load_participants()

    while True:
        print("\n抽奖系统菜单:")
        print("1. 添加参与者")
        print("2. 进行抽奖")
        print("3. 退出")

        choice = input("请选择操作 (1/2/3): ")

        if choice == "1":
            name = input("请输入参与者的名字: ")
            participants.append(name)
            save_participants(participants)
            print("{} 已添加到参与者列表。".format(name))
        elif choice == "2":
            winner = draw_winner(participants)
            if winner:
                participants.remove(winner)
                save_participants(participants)
        elif choice == "3":
            print("抽奖系统已退出。")
            break
        else:
            print("无效的选择,请重新输入。")

if __name__ == "__main__":
    main()

这个抽奖系统允许你添加参与者、进行抽奖,抽奖结果会从参与者列表中移除,并且可以多次运行。抽奖系统会将参与者保存在一个名为 “participants.txt” 的文本文件中,以便下次使用。

*效果展示:

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Makefile——Linux下C/C++编译方法

目录 1. C1.1 编译C1.2 创建静态库1.3 创建动态库 2. C3. Makefile3.1 变量3.2 常用函数3.3 makefile编译文件 1. C linux下常见的C语言项目相关的文件如下图所示。 1.1 编译C 通常使用GCC来编译C文件。编译过程为源文件.c文件 -> 预编译成.i文件 -> 编译成汇编语言.…

【mfc/VS2022】计图实验:绘图工具设计知识笔记2

按钮添加处理程序 1.类视图找到对应类右击,类向导 2. 找到对应的的按钮id 如何将画出的两个相交的圆都显示出来,而不是重叠(如下图)隐藏了一条圆弧 问题如图: 因为矩形和圆心其实是个背景色的封闭图形,所…

ggplot2 -- geom_linerange 函数的简单使用

brief 需要三个参数确定一个直线,x轴位置,y轴起始位置,y轴结束位置。 有别于一些垂直辅助线,可以实现柱状图,瓷砖图等等。 example 实现柱状图 library(tidyverse)tibble(theta seq(from 0, to 1, by .1),prio…

【一周安全资讯1014】交通运输部发布《公路工程设施支持自动驾驶技术指南》;多地网信办对违反数据安全法规企业作出行政处罚

要闻速览 1.交通运输部发布《公路工程设施支持自动驾驶技术指南》 2.数据泄漏被传输境外后擅自删库!某科技公司被上海市网信办依法处罚 3.浙江省网信办对杭州某科技公司未履行数据安全保护义务依法作出行政处罚 4.超140亿元资金失窃?印度一支付网关服务…

【Java】HIS医院信息化管理系统源码(SaaS模式多医院)

【Java】HIS医院信息化管理系统源码(SaaS应用),系统采用主流成熟技术开发,B/S架构,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问,前后端分离,多服务协同&#xf…

百度智能云-身份证验证(完整版-直接用)

百度云网址: https://cloud.baidu.com 身份验证的技术文档: 技术代码: 导入依赖: <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.12.13</version><scope>compile<…

操作系统学习——进程调度

三种不同的调度 进程调度的两种基本方式 非剥夺方式&#xff1a;一旦吧处理机分配给某个进程后&#xff0c;便让他一直运行&#xff0c;知道进程完成或者发生某事件而阻塞&#xff0c;才把处理机转给另一个进程。 剥夺方式&#xff1a;某个进程运行时&#xff0c;如果有中断或…

flutter app开发环境搭建

Flutter是一个跨终端、多设备的应用界面开发工具&#xff0c;其支持web端、移动端、桌面端以及嵌入式不同应用场景的应用开发&#xff0c;其使用dart语言作为开发语言&#xff0c;本文主要描述Flutter开发环境搭建。 如上所示&#xff0c;从Flutter官方网站下载最新版本的Flutt…

AP8851H 降压恒压DC电源芯片 5V12V 零功耗快充应用

1&#xff0c;产品描述 AP8851H 一款宽电压范围降压型 DC-DC 电源管理芯片&#xff0c;内部集成使能 开关控制、基准电源、误差放大器、过 热保护、限流保护、短路保护等功能&#xff0c; 非常适合在宽输入电压范围具有优良 的负载和线性调整度。 AP8851H 芯片包含每周期的峰值…

iOS开发- CMMotionManager 开发

文章目录 一、CMMotionManager1.1 push方式1.2pull 方式 二、设备运动类型1. attitude2. rotationRate3. gravity4. userAcceleration5. magneticField & heading iOS 中常见传感器如下所示: 类型作用环境光传感器感应光照强度距离传感器感应靠近设备屏幕的物体磁力计传感器…

千兆光模块和万兆光模块的适用场景有哪些

随着数字化和物联网的普及&#xff0c;对网络速度和带宽的要求也越来越高。千兆光模块和万兆光模块是两种常见的光模块&#xff0c;在不同的应用场景中&#xff0c;它们各具优势。下面我们来探讨一下千兆光模块和万兆光模块的主要适用场景。 首先是企业网络。千兆光模块常用于…

环形海尔贝克Halbach磁体阵列

环形海尔贝克阵列是一种特殊形状的磁体结构&#xff0c;它的设计思路是通过将形状相同磁化方向不同的多个磁体组合而成一个圆环形磁体&#xff0c;以增强工作面或中心磁场的均匀性和稳定性。使用Halbach阵列结构的永磁电机较传统永磁电机具有更接近正弦分布的气隙磁场&#xff…

【LeetCode热题100】--105.从前序与中序遍历序列构造二叉树

105.从前序与中序遍历序列构造二叉树 二叉树前序遍历顺序&#xff1a;根左右 二叉树中序遍历顺序&#xff1a;左根右 只要我们在中序遍历中定位到根节点&#xff0c;那么我们就可以分别知道左子树和右子树中的节点数目。由于同一颗子树的前序遍历和中序遍历的长度显然是相同的…

实际开发精品贴-1- Winhex使用,给SD卡烧录bin文件

资料获取 Winhex中文破解版本 由于是订阅用户,所以也支持作者帮忙下载,可直接联系我本人 点击下载 教学开始 由于是订阅用户,文章会非常详细 解压我分享的文件,右键点击图标,以管理员方式打卡 -1-你的SD卡插入读卡器,并且初始化SD卡 -2-点击第一步的地方 -3-点击第…

数据结构--哈希表(Hash Table)

1. 哈希表简介 哈希表&#xff08;Hash Table&#xff09;&#xff1a;也叫做散列表。是根据关键码值&#xff08;Key Value&#xff09;直接进行访问的数据结构。 哈希表通过「键 key 」和「映射函数 Hash(key) 」计算出对应的「值 value」&#xff0c;把关键码值映射到表中一…

阿里企业邮箱能发开发信吗?群发邮件技巧?

阿里企业邮箱如何群发营销邮件&#xff1f;邮箱发开发信的方法&#xff1f; 对于许多企业而言&#xff0c;开发信是一种重要的沟通工具&#xff0c;用于与客户、合作伙伴和供应商建立联系。在本文中&#xff0c;蜂邮EDM将探讨阿里企业邮箱是否支持发送开发信&#xff0c;以及如…

通讯网关软件025——利用CommGate X2Modbus实现Modbus RTU访问DDE数据源

本文介绍利用CommGate X2Modbus实现Modbus RTU访问DDE数据源。CommGate X2MODBUS是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;实现上位机通过Modbus RTU来获取DDE数据源的数据。 【解决方…

推荐5款各种原因导致很少人知道的小软件

​ 很多软件用起来很好用&#xff0c;但是由于这样那样的原因&#xff0c;一直没什么知名度&#xff0c;但是不代表它们不好用&#xff0c;我的任务就是把这些宝藏分享给大家。 1.图像编辑——GIMP ​ GIMP是一款免费的开源图像编辑器&#xff0c;可以用于创建和修改图像&…

word写论文遇到数字和文字中间空格删不掉

一、如何删除&#xff1f; 1、选中需要有数字和汉字那段文字 2、点击段落下拉 3、找到中文版式 4、将【自动调整中文与数字的间距】取消勾选&#xff08;不要勾选&#xff09; 5、点击确定即可删除啦

众和策略:小盘和大盘的关系?

在股票商场上&#xff0c;股票能够被分为小盘股和大盘股两类。那么&#xff0c;二者之间有什么联络呢&#xff1f;这篇文章将从多个视点来分析小盘和大盘的联络。 商场表现 首要&#xff0c;让我们看看两者在商场表现上的差异。大盘股是市值较大的股票&#xff0c;一般在首要股…