最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年10月20日 09:43:13   作者:靜就是空  
這篇文章主要介紹了如何基于python實現(xiàn)年會抽獎工具,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

主要功能有

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

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

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

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

初級版

這個比較簡單,缺少定制性,如沒法設(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("進(jìn)行一等獎抽獎,共有一名")
import random
#利用random模塊的chice函數(shù)來從列表中隨機(jī)選取一個元素
e1 = random.choice(emplist)
#將中獎的員工從列表中剔除
emplist.remove(e1)
print('一等獎得主的號碼是 %s' % e1)
print('進(jìn)行三個二等獎的號碼抽獎')
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è)置三等獎的抽獎

改進(jìn)版

上面的那個初級版,假如要設(shè)置個三等獎一百名那么將要重新維護(hù)幾百行代碼,下面用比較高級點的辦法實現(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ū)ο?br /> 8. 字符打印,print中的計算
9.open中with

#!/usr/bin/python
#coding=utf-8
import csv
import sys
import random
reload(sys) 
sys.setdefaultencoding('utf8')
#coding=utf-8
print("開始進(jìn)行抽獎")
#定義個抽獎類,功能有輸入抽獎級別和個數(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)造完畢
 #進(jìn)行抽獎開始
 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ù)從列表中隨機(jī)產(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 win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
開始進(jìn)行抽獎
共有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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python的requests庫進(jìn)行網(wǎng)頁數(shù)據(jù)抓取的詳細(xì)教程

    使用Python的requests庫進(jìn)行網(wǎng)頁數(shù)據(jù)抓取的詳細(xì)教程

    網(wǎng)絡(luò)爬蟲是一種自動化程序,用于從互聯(lián)網(wǎng)上抓取數(shù)據(jù),無論是用于數(shù)據(jù)分析、市場研究、學(xué)術(shù)研究,還是搜索引擎的網(wǎng)頁索引,爬蟲技術(shù)都在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中發(fā)揮著重要作用,本文將通過 requests 庫 來講解如何進(jìn)行基本的網(wǎng)頁數(shù)據(jù)抓取,需要的朋友可以參考下
    2025-03-03
  • python自然語言編碼轉(zhuǎn)換模塊codecs介紹

    python自然語言編碼轉(zhuǎn)換模塊codecs介紹

    這篇文章主要介紹了python自然語言編碼轉(zhuǎn)換模塊codecs介紹,codecs專門用作編碼轉(zhuǎn)換,通過它的接口是可以擴(kuò)展到其他關(guān)于代碼方面的轉(zhuǎn)換,需要的朋友可以參考下
    2015-04-04
  • Python出現(xiàn)segfault錯誤解決方法

    Python出現(xiàn)segfault錯誤解決方法

    這篇文章主要介紹了Python出現(xiàn)segfault錯誤解決方法,分析了系統(tǒng)日志提示segfault錯誤的原因與對應(yīng)的解決方法,需要的朋友可以參考下
    2016-04-04
  • python學(xué)習(xí)之基于Python的人臉識別技術(shù)學(xué)習(xí)

    python學(xué)習(xí)之基于Python的人臉識別技術(shù)學(xué)習(xí)

    面部識別技術(shù)的應(yīng)用越來越廣泛,它廣泛應(yīng)用于安全系統(tǒng)、人機(jī)交互、社交媒體、醫(yī)療保健等領(lǐng)域。本文介紹了基于Python的人臉識別技術(shù),感興趣的小伙伴可以參考閱讀
    2023-03-03
  • python中numpy 數(shù)組過濾詳解

    python中numpy 數(shù)組過濾詳解

    這篇文章主要介紹了python中numpy 數(shù)組過濾詳解的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 基于Python編寫一個解析器

    基于Python編寫一個解析器

    這篇文章主要給大家介紹了如何基于Python編寫一個解析器,文章通過代碼示例介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2023-08-08
  • Python中八種數(shù)據(jù)導(dǎo)入方法總結(jié)

    Python中八種數(shù)據(jù)導(dǎo)入方法總結(jié)

    數(shù)據(jù)分析過程中,需要對獲取到的數(shù)據(jù)進(jìn)行分析,往往第一步就是導(dǎo)入數(shù)據(jù)。導(dǎo)入數(shù)據(jù)有很多方式,不同的數(shù)據(jù)文件需要用到不同的導(dǎo)入方式,相同的文件也會有幾種不同的導(dǎo)入方式。下面總結(jié)幾種常用的文件導(dǎo)入方法
    2022-11-11
  • OpenCV利用手勢識別實現(xiàn)虛擬拖放效果

    OpenCV利用手勢識別實現(xiàn)虛擬拖放效果

    這篇文章主要介紹了利用OpenCV實現(xiàn)手勢識別,從而進(jìn)行虛擬拖放效果,我們可以使用這個技術(shù)實現(xiàn)一些游戲,控制機(jī)械臂等很多有趣的事情。感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • OpenCV-Python直方圖均衡化實現(xiàn)圖像去霧

    OpenCV-Python直方圖均衡化實現(xiàn)圖像去霧

    直方圖均衡化可以達(dá)到增強(qiáng)圖像顯示效果的目的。最常用的比如去霧。本文就來實現(xiàn)直方圖均衡化實現(xiàn)圖像去霧,感興趣的可以了解一下
    2021-06-06
  • Python批量生成Excel案例數(shù)據(jù)集的方法詳解

    Python批量生成Excel案例數(shù)據(jù)集的方法詳解

    在數(shù)據(jù)分析的世界里,數(shù)據(jù)是核心,而如何高效地生成和處理數(shù)據(jù)則成為每位數(shù)據(jù)分析師必備的技能之一,今天,我們要探討一個有趣的話題——“造數(shù)”,所以本文給大家介紹了Python辦公自動化,批量生成Excel案例數(shù)據(jù)集,需要的朋友可以參考下
    2024-12-12

最新評論

体育| 天全县| 许昌市| 凤阳县| 上饶县| 阿尔山市| 启东市| 马尔康县| 聊城市| 桦川县| 巴里| 汤阴县| 临汾市| 双流县| 营山县| 五原县| 青铜峡市| 文昌市| 报价| 易门县| 高雄县| 通化市| 武定县| 出国| 镇远县| 邵东县| 拉萨市| 鞍山市| 仪陇县| 东平县| 阳江市| 邵阳市| 巴马| 庆元县| 胶南市| 溧水县| 东至县| 阿瓦提县| 临海市| 繁昌县| 商丘市|