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 字符串和日期之间转换 StringAndDate
May 04 Python
Python3实现抓取javascript动态生成的html网页功能示例
Aug 22 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
Python快速查找list中相同部分的方法
Jun 27 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
Python sep参数使用方法详解
Feb 12 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
python中return不返回值的问题解析
Jul 22 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
Python实现曲线拟合的最小二乘法
Feb 19 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框架功能对照表
2014/10/23 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
农历与西历对照
2006/09/06 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
python中嵌套函数的实操步骤
2019/02/27 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python SocketServer源码深入解读
2019/09/17 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
食品销售计划书
2014/04/26 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android