python3 实现口罩抽签的功能


Posted in Python onMarch 11, 2020

一、口罩抽签的逻辑

每个人产生对应的抽签码;
开始进行抽签;
公布中签结果;
这次案例写的比较简单,实际生产环境远比这复杂的多,但是万变不离其宗,基本逻辑还是差不多的……

二、口罩抽签的代码

import random


def get_random_code(num_code):
 """
 生成并返回随机验证码
 :param num_code: 随机验证码位数
 """
 list_code = []
 for i in range(num_code):
 # (1)随机生成三种字符
 # (1-1)随机生成0~9的数字
 num = str(random.randint(0, 9))
 # (1-2)随机生成小写字母
 lower_alphabet = chr(random.randint(97, 122))
 # (1-3)随机生成大写字母
 upper_alphabet = chr(random.randint(65, 90))
 # (2)再次随机抽取一个字符
 random_code = random.choice([num, lower_alphabet, upper_alphabet])
 # (3)保存随机抽取的字符
 list_code.append(random_code)
 return "".join(list_code)


def main():
 # 抽签总人数
 draw_num = 30
 # 中签的总人数
 draw_result_num = 10
 # 总抽签码列表
 draw_list = []
 # 中签的抽签码列表
 draw_result_list = []

 # (1)模拟生成抽签码,实际应该是每个人自己获取抽签码,现在用循环来模拟
 for i in range(draw_num):
 draw_code = get_random_code(6)
 while draw_code in draw_list:
  # 重复标签,需要重新生成抽签码
  draw_code = get_random_code(6)
 else:
  # 将生成的标签码加入列表
  draw_list.append(draw_code)

 # (2)模拟产生抽签的过程
 print("总共产生了{}个抽签码:{}".format(draw_num, draw_list))
 for i in range(draw_result_num):
 # NO1:这种方式会总共生成的抽签码给删除,所以还是采用其它方式
 # random_index = random.randint(0, len(draw_list)-1)
 # draw_result_list.append(draw_list.pop(random_index))
 # NO2:
 a = 0
 b = len(draw_list) - 1
 draw_code = draw_list[random.randint(a, b)]
 while draw_code in draw_result_list:
  # 重复标签,重新抽签
  draw_code = draw_list[random.randint(a, b)]
 else:
  # 将抽中的抽签码加入列表
  draw_result_list.append(draw_code)

 # (3)公布抽签结果
 print("{}位中签的抽签码如下:".format(draw_result_num))
 for item in draw_result_list:
 print(item)

if __name__ == '__main__':
 main()

控制台输出结果:

总共产生了30个抽签码:[‘511uCZ', ‘nAYBf8', ‘6I92sq', ‘206FxX', ‘1WMHCb', ‘sdJUMU', ‘e4A85p', ‘14Ae35', ‘n4xA44', ‘94i4eG', ‘L8981K', ‘11wtyN', ‘i5k5Xk', ‘7S8Tf7', ‘cGC4Ku', ‘f8dM40', ‘nBi958', ‘ELDVqz', ‘MQZFJQ', ‘hPPqh5', ‘Qr682E', ‘E2Z4X4', ‘IlmRJJ', ‘J71Pc1', ‘JPZpv8', ‘svAlm3', ‘9GaS9U', ‘v8378K', ‘116u2b', ‘x688xP']

10位中签的抽签码如下:

i5k5Xk
v8378K
e4A85p
J71Pc1
hPPqh5
1WMHCb
JPZpv8
sdJUMU
9GaS9U

MQZFJQ

到此这篇关于python3 实现 口罩抽签的功能的文章就介绍到这了,更多相关python3 口罩抽签内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python发送邮件示例(支持中文邮件标题)
Feb 16 Python
跟老齐学Python之print详解
Sep 28 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
Python解压 rar、zip、tar文件的方法
Nov 19 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Python如何读写字节数据
Aug 05 Python
通过代码简单了解django model序列化作用
Nov 12 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 Python
Python使用BeautifulSoup4修改网页内容
May 20 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 #Python
Django+boostrap 美化admin后台的操作
Mar 11 #Python
Windows 下python3.8环境安装教程图文详解
Mar 11 #Python
django admin后管定制-显示字段的实例
Mar 11 #Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 #Python
屏蔽Django admin界面添加按钮的操作
Mar 11 #Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 #Python
You might like
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python字典键值对的添加和遍历方法
2016/09/11 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
Python二元赋值实用技巧解析
2019/10/25 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
物业经理求职自我评价
2013/09/22 职场文书
寄语十八大感言
2014/02/07 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
各国货币符号大全
2022/02/17 杂记
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android