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 相关文章推荐
django之常用命令详解
Jun 30 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
python--shutil移动文件到另一个路径的操作
Jul 13 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
python 实现德洛内三角剖分的操作
Apr 22 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
语义化 H1 标签
2008/01/14 Javascript
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
理解Python中的With语句
2016/03/18 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
小学生打架检讨书
2014/01/26 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
毕业生个人总结
2015/02/28 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书