每家互联网公司到年末都会有聚会,聚会少不了抽奖环节,如何公平、有趣的做好抽奖活动是年会开的好不好的重要评价指标,以下笔者从一个程序员角度,设计一款抽奖程序。

一、业务

  1. 参加抽奖的人员数据保存在一个csv文件中,文件包含两列:工号和姓名。
  2. 可以涉及多个奖项,每个奖项可以设置多少名额,奖项和名额可以设置。
  3. 当奖项大于参加抽奖人数的时候,可以自动提示,并退出抽奖程序。
  4. 抽奖的结果最终按:m等奖n名:x,y…输出。
  5. 每个人最多只能中一次奖,不能重复中奖。

最终效果如下:

二、实现

  1. 首先需要实现一个从csv文件读取数据的函数,csv文件内容如下:

    具体代码如下:
  2. 奖项的数据结构,由于业务中涉及的奖项比较简单,我们直接通过list列表来完成奖项设置,列表的元素个数代表奖项的数量,元素值代表该奖项相应的获奖名额,具体例子如下:
  3. 抽奖逻辑,通过random.choice(list)从参加抽奖的人员列表中抽取一个随机数据,同时把这个元素放入相应奖项列表中,同时在参加抽奖列表中删除该数据,每个奖项单独作为一次抽奖过程,完成后直接输出中奖结果,具体代码如下:

    以上就是通过Python实现的一个简单功能的抽奖程序,欢迎读者朋友们互相交流。

参考文献

  1. Github项目源代码LuckyDog

项目经验:抽奖程序(Python)相关推荐

  1. 零架构项目经验的程序员,如何升级成架构师

    先说目前关于架构师的一些是实际情况. 1 要成为Java架构师,单纯靠学知识一定不行,得靠在项目里积累经验. 2 如何判断程序员是否已经成为java架构师?不是看程序员掌握的技能,更不是看程序员干的活 ...

  2. Java项目经验是程序员成长的重要经验

    没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考! 我在疯狂软件j ...

  3. python 公司年会抽奖_公司年会抽奖程序-python

    发一下自己写的公司抽奖程序.. 需求:公司年会要一个抽奖程序,转盘上的每一个人名是随机中奖的,中奖后的人不可以再次中奖,按住抽奖,就会一直在转,放开后,要再转一两圈才停. 呵,刚好自己在学python ...

  4. 抽奖程序(python)

    抽奖程序: 1.每次抽奖完成,会提示是否继续抽奖,只有输入"是"才继续抽奖 2.抽奖逻辑: (1)生产0-100的整数,构造成列表 (2)构造三个列表,分别是一等奖.二等奖.三等奖 ...

  5. Java项目经验——程序员成长的关键

    2019独角兽企业重金招聘Python工程师标准>>> Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1.掌握 ...

  6. 年会,用 Python 做了个 “抽奖程序”,boss 奖励我一个红包!

    作者:小小明 文末获取完整代码 简介:Pandas 数据处理高手,10 余年编码经验,至今已帮助过百名以上数据从业人员解决工作实际遇到的问题,其中数据处理和办公自动化问题涉及的行业包括会计.审计.HR ...

  7. 网易python面试经验_Python程序员应该如何准备面试

    当前Python语言的上升趋势非常明显,随着大数据和人工智能领域的发展,Python语言未来的应用前景还是非常值得期待的.另外,Python语言在Web开发.嵌入式开发和各种后端服务开发中也扮演着重要 ...

  8. 如何高效利用开源项目增加实战经验?程序员如何做副业?这些你关心的问题一次讲清楚!...

    不久前我在朋友圈做了一个调查,"工作1-3年的程序员,你对自身发展有哪些困惑?"得到了五花八门的答案: "我在一家小公司写Java,工作2年了,感觉很迷茫,项目经验也不多 ...

  9. 用Python制作一个简易的抽奖程序

    分析需求 我们先整理下思路,目标是什么? 目标是要写一个抽奖程序,那么抽奖程序的核心是什么? 当然是如何判断一个人中奖了.那么如何判断一个人中奖呢? 是不是可以通过随机函数来操作呢? 中奖方法 一步一 ...

最新文章

  1. Template Method (C++实现)
  2. 机器学习(MACHINE LEARNING)MATLAB遗传算法
  3. listen()函数中backlog参数分析
  4. php+imagick详解,PHP中imagick函数的中文解释_php技巧
  5. 使用Powerdesigner的逆向工程生成PDM(主要是注释可以放进去)
  6. 算法练习day10——190328(根据指定值划分单链表、复制含有rand指针节点的链表、两个单链表相交)
  7. 1035 插入与归并 (25 分)(c++)
  8. android clipChildren的使用
  9. 不借助Maven,使用Eclipse创建Hello World级别的Spring项目
  10. java+多线程菜鸟_java多线程
  11. 中移动飞信2010Beta1.0体验版
  12. Mac 修改Hosts文件的方式
  13. CITE 2018盛大开幕,精彩看点速来围观
  14. AAAI 2020对抗样本论文
  15. 微信发送图片php,PHP怎么实现微信图片上传到服务器?
  16. DNS服务器详解(端口占用与记录类型)
  17. sql语句-按照汉字拼音首字母排序
  18. 数据运营分析多年,我只推荐这些书
  19. 凯云水利水电工程造价管理系统 技术解释(十三) 中间单价(四)
  20. 线性代数2.5分块矩阵

热门文章

  1. 201671010403 陈倩倩 实验三 作业互评与改进
  2. 基于普中科技的单片机开发实验仪编写的数字表
  3. 数据库有哪几种结构?
  4. 电路分析笔记-电阻电路的等效变换
  5. php 汉王云名片_超级云名片,让你的客户不与你说“考虑一下”!
  6. OrangeUI将支持皮肤包的功能
  7. 告诉你一个去除PDF文件水印简单快速的方法
  8. python冰雹猜想_洛谷-P5727 【深基5.例3】冰雹猜想
  9. sqlserver嵌套查询失败问题
  10. java 图形用户界面