年會(huì)抽獎(jiǎng)小程序源碼分析
年會(huì)抽獎(jiǎng)小程序,用面向?qū)ο髞韺?shí)現(xiàn),設(shè)計(jì)一個(gè)抽獎(jiǎng)?lì)悾愔邪粋€(gè)屬性(號(hào)碼來源),一個(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ū)ο?/p>
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("開始進(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)開始
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)
#類功能定義完畢,開始初始化并使用
if __name__ == '__main__':
peoples = Choujiang('c://emps.csv')
peoples.creat_num()
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
該段程序在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 ================================
>>>
開始進(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']]
>>>
HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。
更多小程序資訊,盡在:zytcm.com.cn/xiaocx/