91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現年會抽獎程序

發布時間:2021-04-07 12:53:23 來源:億速云 閱讀:244 作者:小新 欄目:開發技術

這篇文章主要介紹了python怎么實現年會抽獎程序,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體內容如下

主要功能有

1.從一個csv文件中讀入所有員工工號
2.將這些工號初始到一個列表中
3.用random模塊下的choice函數來隨機選擇列表中的一個工號
4.抽到的獎項的工號要從列表中進行刪除,以免再次抽到

初級版

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

import csv
#創建一個員工列表
emplist = []
#用with自動關閉文件
with open('c://emps.csv') as f:
 empf = csv.reader(f)
 for emp in empf:
  emplist.append(emp)
print("進行一等獎抽獎,共有一名")
import random
#利用random模塊的chice函數來從列表中隨機選取一個元素
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))
#下面依次類推可以設置三等獎的抽獎

改進版

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

我們考慮用面向對象來實現,設計一個抽獎類,類中包含一個屬性(號碼來源),一個方法:產生所有抽獎層次指定個數的抽獎號碼。

用到如下知識點:

1. csv模塊部分函數用法
2. sys模塊讀取輸入
3. random模塊函數choice函數用法
4. 列表和字典元素的添加、刪除
6. for循環中range用法
7. 類和面向對象
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("開始進行抽獎")
#定義個抽獎類,功能有輸入抽獎級別和個數,打印出每個級別的抽獎員工號碼
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('請輸入當前獲獎層次 %s 對應的獎品個數' % ( 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
   #循環完成后抽獎層次字典構造完畢
  #進行抽獎開始
  print('抽獎字典設置為: %s' % level_dict)
  for i in range(0,len(level_dict)):
   winers = []
   #產生當前抽獎層次i對應的抽獎個數
   for j in range(0,int(level_dict[i])):
    #利用random模塊中的choice函數從列表中隨機產生一個
    winer = random.choice(emplist)
    winers.append(winer)
    emplist.remove(winer)
   print('抽獎層次 %s 下產出的獲獎人員有:' % (i + 1 ))
   print(winers)
#類功能定義完畢,開始初始化并使用
if __name__ == '__main__':
 peoples = Choujiang('c://emps.csv')
 peoples.creat_num()

該段程序在python 2.6 以上及 3中均可以運行,運行結果如下圖:

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 ================================
>>> 
開始進行抽獎
共有24790 人參與抽獎
抽獎分幾個層次,請輸入:2
請輸入當前獲獎層次 1 對應的獎品個數
1
請輸入當前獲獎層次 2 對應的獎品個數
3
抽獎字典設置為: {0: 1, 1: 3}
抽獎層次 1 下產出的獲獎人員有:
[['張三19826']]
抽獎層次 2 下產出的獲獎人員有:
[['張三18670'], ['張三23235'], ['張三15705']]
>>>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“python怎么實現年會抽獎程序”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汤原县| 忻城县| 漳州市| 夏津县| 南和县| 侯马市| 泰州市| 望奎县| 天门市| 武陟县| 缙云县| 苏尼特左旗| 茂名市| 通渭县| 织金县| 嘉荫县| 蒙自县| 平南县| 宁阳县| 闵行区| 鄂温| 丰宁| 扬州市| 安龙县| 行唐县| 临湘市| 交口县| 林州市| 台湾省| 广宁县| 尼勒克县| 襄城县| 紫阳县| 宝清县| 南康市| 格尔木市| 无极县| 陆良县| 天等县| 磐石市| 凌源市|