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

python實(shí)現(xiàn)年會(huì)抽獎(jiǎng)程序

 更新時(shí)間:2019年01月22日 15:26:17   作者:x6_9x  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)年會(huì)抽獎(jiǎng)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

用python來(lái)實(shí)現(xiàn)一個(gè)抽獎(jiǎng)程序,供大家參考,具體內(nèi)容如下

主要功能有

1.從一個(gè)csv文件中讀入所有員工工號(hào)
2.將這些工號(hào)初始到一個(gè)列表中
3.用random模塊下的choice函數(shù)來(lái)隨機(jī)選擇列表中的一個(gè)工號(hào)
4.抽到的獎(jiǎng)項(xiàng)的工號(hào)要從列表中進(jìn)行刪除,以免再次抽到

初級(jí)版

這個(gè)比較簡(jiǎn)單,缺少定制性,如沒(méi)法設(shè)置一等獎(jiǎng)有幾名,二等獎(jiǎng)有幾名

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

改進(jìn)版

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

我們考慮用面向?qū)ο髞?lái)實(shí)現(xiàn),設(shè)計(jì)一個(gè)抽獎(jiǎng)?lì)?,類中包含一個(gè)屬性(號(hào)碼來(lái)源),一個(gè)方法:產(chǎn)生所有抽獎(jiǎng)層次指定個(gè)數(shù)的抽獎(jiǎng)號(hào)碼。

用到如下知識(shí)點(diǎn):

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

#!/usr/bin/python
#coding=utf-8
import csv
import sys
import random
reload(sys) 
sys.setdefaultencoding('utf8')
#coding=utf-8
print("開(kāi)始進(jìn)行抽獎(jiǎng)")
#定義個(gè)抽獎(jiǎng)?lì)?,功能有輸入抽?jiǎng)級(jí)別和個(gè)數(shù),打印出每個(gè)級(jí)別的抽獎(jiǎng)員工號(hào)碼
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 人參與抽獎(jiǎng)' % len(emplist))
  levels = int(input('抽獎(jiǎng)分幾個(gè)層次,請(qǐng)輸入:'))
  #定義一個(gè)字典
  level_dict = {}
  for i in range(0,levels):
   print('請(qǐng)輸入當(dāng)前獲獎(jiǎng)層次 %s 對(duì)應(yīng)的獎(jiǎng)品個(gè)數(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)完成后抽獎(jiǎng)層次字典構(gòu)造完畢
  #進(jìn)行抽獎(jiǎng)開(kāi)始
  print('抽獎(jiǎng)字典設(shè)置為: %s' % level_dict)
  for i in range(0,len(level_dict)):
   winers = []
   #產(chǎn)生當(dāng)前抽獎(jiǎng)層次i對(duì)應(yīng)的抽獎(jiǎng)個(gè)數(shù)
   for j in range(0,int(level_dict[i])):
    #利用random模塊中的choice函數(shù)從列表中隨機(jī)產(chǎn)生一個(gè)
    winer = random.choice(emplist)
    winers.append(winer)
    emplist.remove(winer)
   print('抽獎(jiǎng)層次 %s 下產(chǎn)出的獲獎(jiǎng)人員有:' % (i + 1 ))
   print(winers)
#類功能定義完畢,開(kāi)始初始化并使用
if __name__ == '__main__':
 peoples = Choujiang('c://emps.csv')
 peoples.creat_num()

該段程序在python 2.6 以上及 3中均可以運(yùn)行,運(yùn)行結(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 ================================
>>> 
開(kāi)始進(jìn)行抽獎(jiǎng)
共有24790 人參與抽獎(jiǎng)
抽獎(jiǎng)分幾個(gè)層次,請(qǐng)輸入:2
請(qǐng)輸入當(dāng)前獲獎(jiǎng)層次 1 對(duì)應(yīng)的獎(jiǎng)品個(gè)數(shù)
1
請(qǐng)輸入當(dāng)前獲獎(jiǎng)層次 2 對(duì)應(yīng)的獎(jiǎng)品個(gè)數(shù)
3
抽獎(jiǎng)字典設(shè)置為: {0: 1, 1: 3}
抽獎(jiǎng)層次 1 下產(chǎn)出的獲獎(jiǎng)人員有:
[['張三19826']]
抽獎(jiǎng)層次 2 下產(chǎn)出的獲獎(jiǎng)人員有:
[['張三18670'], ['張三23235'], ['張三15705']]
>>> 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pypy提升python項(xiàng)目性能使用詳解

    pypy提升python項(xiàng)目性能使用詳解

    這篇文章主要為大家介紹了pypy提升python項(xiàng)目性能使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • python用戶自定義異常的實(shí)例講解

    python用戶自定義異常的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python用戶自定義異常的實(shí)例講解,以后需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-07-07
  • 詳解Python爬蟲(chóng)的基本寫(xiě)法

    詳解Python爬蟲(chóng)的基本寫(xiě)法

    這篇文章主要介紹了詳解Python爬蟲(chóng)的基本寫(xiě)法 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • python getopt詳解及簡(jiǎn)單實(shí)例

    python getopt詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了 python getopt詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Python生成指定大小的文件兩種解決方案

    Python生成指定大小的文件兩種解決方案

    這篇文章主要介紹了Python生成指定大小的文件,這里提供兩種解決方案幫助python完成我們生成任意大小的文件,需要的朋友可以參考下
    2023-06-06
  • Opencv+Python 色彩通道拆分及合并的示例

    Opencv+Python 色彩通道拆分及合并的示例

    今天小編就為大家分享一篇Opencv+Python 色彩通道拆分及合并的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • django之跨表查詢及添加記錄的示例代碼

    django之跨表查詢及添加記錄的示例代碼

    表查詢是重要的操作。這篇文章主要介紹了django之跨表查詢及添加記錄的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python?Numpy庫(kù)的超詳細(xì)教程

    Python?Numpy庫(kù)的超詳細(xì)教程

    Numpy庫(kù)是Python中的一個(gè)科學(xué)計(jì)算庫(kù),本文主要介紹了ndarray的基本操作、?ndarray運(yùn)算等各種Numpy庫(kù)的超詳細(xì)教程,需要的朋友可以參考下
    2022-04-04
  • Django點(diǎn)贊的實(shí)現(xiàn)示例

    Django點(diǎn)贊的實(shí)現(xiàn)示例

    本文主要介紹了Django點(diǎn)贊的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 基于pytorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類的示例代碼

    基于pytorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類的示例代碼

    當(dāng)使用基于PyTorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類時(shí),我們可以使用一個(gè)非常簡(jiǎn)單的RNN模型來(lái)處理輸入的字符序列,并將其應(yīng)用于姓氏分類任務(wù),本文給大家舉了一個(gè)基本的示例代碼,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

桂林市| 施秉县| 巴塘县| 金沙县| 阳西县| 镇巴县| 红原县| 济源市| 新蔡县| 阳江市| 泾阳县| 天门市| 渭南市| 车险| 方山县| 闽清县| 科技| 安泽县| 元江| 呼玛县| 丰台区| 宁国市| 探索| 股票| 会泽县| 浑源县| 丰都县| 肥西县| 榆社县| 类乌齐县| 治多县| 简阳市| 阿尔山市| 河间市| 惠州市| 西乌珠穆沁旗| 斗六市| 荔浦县| 阳泉市| 库伦旗| 乐陵市|