色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

如何基于python實現(xiàn)年會抽獎工具

瀏覽:7日期:2022-07-07 16:47:02

用python來實現(xiàn)一個抽獎程序,供大家參考,具體內(nèi)容如下

主要功能有

1.從一個csv文件中讀入所有員工工號

2.將這些工號初始到一個列表中

3.用random模塊下的choice函數(shù)來隨機選擇列表中的一個工號

4.抽到的獎項的工號要從列表中進行刪除,以免再次抽到

初級版

這個比較簡單,缺少定制性,如沒法設(shè)置一等獎有幾名,二等獎有幾名

import csv#創(chuàng)建一個員工列表emplist = []#用with自動關(guān)閉文件with open(’c://emps.csv’) as f: empf = csv.reader(f) for emp in empf: emplist.append(emp)print('進行一等獎抽獎,共有一名')import random#利用random模塊的chice函數(shù)來從列表中隨機選取一個元素e1 = random.choice(emplist)#將中獎的員工從列表中剔除emplist.remove(e1)print(’一等獎得主的號碼是 %s’ % e1)print(’進行三個二等獎的號碼抽獎’)e2_1 = random.choice(emplist)emplist.remove(e2_1)e2_2 = random.choice(emplist)emplist.remove(e2_2)e2_3 = random.choice(emplist)emplist.remove(e2_3)print(’獲得3個二等獎是 %s %s %s’,(e2_1,e2_2,e2_3))#下面依次類推可以設(shè)置三等獎的抽獎

改進版

上面的那個初級版,假如要設(shè)置個三等獎一百名那么將要重新維護幾百行代碼,下面用比較高級點的辦法實現(xiàn).

我們考慮用面向?qū)ο髞韺崿F(xiàn),設(shè)計一個抽獎類,類中包含一個屬性(號碼來源),一個方法:產(chǎn)生所有抽獎層次指定個數(shù)的抽獎號碼。

用到如下知識點:

1. csv模塊部分函數(shù)用法2. sys模塊讀取輸入3. random模塊函數(shù)choice函數(shù)用法4. 列表和字典元素的添加、刪除6. for循環(huán)中range用法7. 類和面向?qū)ο?. 字符打印,print中的計算9.open中with

#!/usr/bin/python#coding=utf-8import csvimport sysimport randomreload(sys) sys.setdefaultencoding(’utf8’)#coding=utf-8print('開始進行抽獎')#定義個抽獎類,功能有輸入抽獎級別和個數(shù),打印出每個級別的抽獎員工號碼class Choujiang: #定義scv文件路徑 def __init__(self,filepath): self.empfile = filepath def creat_num(self): emplist = [] with open(self.empfile) as f: empf = csv.reader(f) for emp in empf: emplist.append(emp) print(’共有%s 人參與抽獎’ % len(emplist)) levels = int(input(’抽獎分幾個層次,請輸入:’)) #定義一個字典 level_dict = {} for i in range(0,levels): print(’請輸入當(dāng)前獲獎層次 %s 對應(yīng)的獎品個數(shù)’ % ( i + 1)) str_level_dict_key = sys.stdin.readline() int_level_dict_key = int(str_level_dict_key) level_dict[i] = int_level_dict_key #循環(huán)完成后抽獎層次字典構(gòu)造完畢 #進行抽獎開始 print(’抽獎字典設(shè)置為: %s’ % level_dict) for i in range(0,len(level_dict)): winers = [] #產(chǎn)生當(dāng)前抽獎層次i對應(yīng)的抽獎個數(shù) for j in range(0,int(level_dict[i])): #利用random模塊中的choice函數(shù)從列表中隨機產(chǎn)生一個 winer = random.choice(emplist) winers.append(winer) emplist.remove(winer) print(’抽獎層次 %s 下產(chǎn)出的獲獎人員有:’ % (i + 1 )) print(winers)#類功能定義完畢,開始初始化并使用if __name__ == ’__main__’: peoples = Choujiang(’c://emps.csv’) peoples.creat_num()

該段程序在python 2.6 以上及 3中均可以運行,運行結(jié)果如下

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32Type 'copyright', 'credits' or 'license()' for more information.>>> ================================ RESTART ================================>>> 開始進行抽獎共有24790 人參與抽獎抽獎分幾個層次,請輸入:2請輸入當(dāng)前獲獎層次 1 對應(yīng)的獎品個數(shù)1請輸入當(dāng)前獲獎層次 2 對應(yīng)的獎品個數(shù)3抽獎字典設(shè)置為: {0: 1, 1: 3}抽獎層次 1 下產(chǎn)出的獲獎人員有:[[’張三19826’]]抽獎層次 2 下產(chǎn)出的獲獎人員有:[[’張三18670’], [’張三23235’], [’張三15705’]]>>>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成人在线免费小视频 | 国产成人精品一区二区秒拍 | 日韩一级片 | 国产精品亚洲精品久久成人 | 日韩精品中文字幕一区三区 | 国产精选在线 | 国产一区二区在线视频播放 | 久久福利青草免费精品 | 国产成人综合网在线播放 | 在线91精品国产免费 | 99在线热视频只有精品免费 | 视频综合网 | 国产午夜毛片v一区二区三区 | 中文字幕最新中文字幕中文字幕 | 欧美透逼| 精品国产欧美一区二区五十路 | 国产在线日韩在线 | 黄.www| 亚洲一区欧美 | 欧美一级视频在线 | 国产欧美视频一区二区三区 | 在线亚洲精品自拍 | 色日韩 | 日韩区在线 | 韩国免费毛片在线看 | 福利一二三区 | 天天看有黄有色大片 | 成 人免费视频l免费观看 | 国产精品视频久久久久 | 香港三级做爰大爽视频 | 波多野结衣中文一区二区免费 | 农村寡妇偷毛片一级 | 亚洲免费视 | 亚洲人成日本在线观看 | 免费一级欧美在线观看视频片 | 青青草原色| 俄罗斯美女毛片 | 日本人成免费大片 | 国产高清在线不卡 | 国产三级在线免费 | 欧美久在线观看在线观看 |