首页 > 其他分享 >12 random案例 年会抽奖案例

12 random案例 年会抽奖案例

时间:2024-09-28 08:51:29浏览次数:1  
标签:12 name text random list 案例 抽奖 user print

年会抽奖案例

把向向过程编程函数实现时:可读性+重用性,print时,能不使用“”号时,尽量不使用

- 各部门统计员工的姓名 => 部门名称.txt
- 读取用户信息
- 根据特定的奖项配置来进行抽奖
data_list = [
    ("三等奖",5,"空气净化器"),
    ("二等奖",3,"ipad"),
	("一等奖",2,"iphone 13"),
	("特等奖",1,"宝马 X5"),
]
- 一个一个奖项去抽取,每次抽取后领导讲话后,在继续抽取

"""
- 各部门统计员工的姓名 => 部门名称.txt
- 读取用户信息
- 根据特定的奖项配置来进行抽奖
data_list = [
    ("三等奖",5,"空气净化器"),
    ("二等奖",3,"ipad"),
	("一等奖",2,"iphone 13"),
	("特等奖",1,"宝马 X5")
]
- 一个一个奖项去抽取,每次抽取后领导讲话后,在继续抽取
"""
import os
import random
from datetime import datetime

# def get_user_info(files,choices):
message = f"{30 * '*'} 联通年会抽奖系统{30 * '*'}"
print(message)

# 1、读取所有用户信息
user_list = []
for file_name in os.listdir("files"):
    dep_name = file_name.split(".")[0]  # 获取部门名字
    file_path = os.path.join("files", file_name)
    f = open(file_path, mode='r', encoding='utf-8')
    for line in f:
        line = line.split()
        if line:
            user_list.append(f'{dep_name}-{line}')
    f.close()
    
#方式1
info = f"""
员工数量:{len(user_list)}
时间:{datetime.now().strtime("%Y-%m-%d")}
"""

#方式2 

print(f"员工数量:{len(user_list)}\n时间:{datetime.now().strtime("%Y-%m-%d")}\n")

# 2. 输入特定Y/y字符继续
while True:
    text = input("输入y/Y继续").strip()
    if text.upper() == 'Y':
        break

# 3 奖项信息
print(f"{30 * '-'} 奖品信息{30 * '-'}")
data_list = [
    ("三等奖", 5, "空气净化器"),
    ("二等奖", 3, "ipad"),
    ("一等奖", 2, "iphone 13"),
    ("特等奖", 1, "宝马 X5"),
]

for text, count, title in data_list:
    print(f"{text}. 有{count}个,奖品是:{title}")

# 4、输入特定Y/y字符继续
while True:
    text = input("输入y/Y继续").strip()
    if text.upper() == 'Y':
        break
# 5、开始抽奖
print(f"{30 * '-'} 开始抽奖{30 * '-'}")
for text, count, title in data_list:
    luck_list = random.sample(user_list, count)
    # 避免抽奖姓名重复,将已抽奖的人员,进行移除
    for name in luck_list:
        user_list.remove(name)
    print(f"{text},中奖人员{luck_list},奖品:{title}")
    # 存在问题:1、奖项全部出来了,2、有重复抽奖
    # 解决问题:1,通过输入回车继续
    input('回车继续')

输入特定的字符才能继续往下面执行

# 2.输入回车继续

input ('回车继续')

print(‘123’)

# 输入特定的字符继续
while True:
text = input("输入q继续")
if text == 'q':
break

标签:12,name,text,random,list,案例,抽奖,user,print
From: https://www.cnblogs.com/jhchena/p/18436974

相关文章

  • 11 random案例1
    生成公司所有员工的信息,放在一个列表里面importrandom#生成公司所有员工的信息,放在一个列表里面,随机选择一个员工user_list=[]foriteminrange(1,301):user_list.append(f"工号-{item}")lucky_user=random.choice(user_list)print(lucky_user)随机获取3......
  • 14 hashlib 案例2 用户注册
    问题:无法反向解密时,我们知道密码明文吗用户注册importhashlib#1、用户注册user=input("请输入用户名:").strip()pwd=input("请输入密码:").strip()#2、加密obj=hashlib.md5('testaa'.encode('utf-8'))obj.update(pwd.encode('utf-8'))encryp......
  • 13 hashlib案例1
    此模块用于实现加密,例如:md5加密importhashlibdefrun():data='中国联通'obj=hashlib.md5()obj.update(data.encode('utf-8'))ret=obj.hexdigest()print(ret)为什么要加密#避免密码被破解wupeiqi,123alex,123eric,123wupeiqi,202c......
  • 15 json常见操作与案例 序列化 反序列化
    json:本质是一个特定结构的字符串意义:打通不同编程语言之间进行相互通信时的数据格式问题。序列化(python数据类型转换成JSON格式化字符串)#python数据类型转换成JSON格式化字符串序列化importjson#python数据类型info={"code":1000,"message":"succes......
  • JAVA连接HDFS使用案例
    JAVA连接HDFS使用案例一、引言Hadoop分布式文件系统(HDFS)是大数据存储的基础。对于Java开发者来说,能够通过Java代码操作HDFS是处理大数据任务的关键技能。本文将通过几个简单的示例,展示如何使用Java连接HDFS并执行一些基本的文件操作。二、连接HDFS1、第一步:添加依赖在M......
  • 牛客练习赛129 A-数数
    复习一下埃氏筛,快速拿出n以内质数。该题要是一个一个去计算“偶数”会超时非常多。题意中”奇数“的本质是质数及质数的n次幂,所以先求出n以内所有质数及其n次幂的个数,就能计算出“偶数”的个数。1#include<bits/stdc++.h>2usingnamespacestd;3vector<bool>isPrime(......
  • keepalived+nginx实现高可用的案例详解(主主模式)
    文章目录前言keepalived主备模式和主主模式有什么区别1.主备模式(Master-BackupMode)2.主主模式(Active-ActiveMode或DualMasterMode)主备模式vs主主模式的区别总结:环境案例实现具体步骤ngx1ngx2验证前言keepalived主备模式和主主模式有什么区别Keepali......
  • 【花朵识别系统】计算机毕设案例+卷积神经网络算法+人工智能+深度学习+Django网页界面
    一、介绍花朵识别系统。本系统采用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,并基于前期收集到的5种常见的花朵数据集(向日葵、玫瑰、蒲公英、郁金香、菊花)进行处理后进行模型训练,最后得到一个识别精度较高的模型,然后保存为本地的h5格式文件,便......
  • 【交通标志识别系统】计算机毕设案例+卷积神经网络算法+人工智能+深度学习+模型训练+D
    一、介绍交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Dj......
  • 《华为云DTSE》期刊免费下载:10个案例读懂云上架构升级策略
    本文分享自华为云社区《《华为云DTSE》期刊第四期赋能云专刊,赋能云场景下DTSE服务各类开发者的案例分享》,作者:HuaweiCloudDeveloper。 把公司的开发者平台统一在一起,是华为云所担负的任务,其最终目的是要汇聚开发者、做厚“黑土地”,支撑三大根生态的发展壮大。这也意味着,作为支......