python中set()函數(shù)的用法如下:
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、劍河網(wǎng)站維護、網(wǎng)站推廣。
工具/原料:臺式電腦、Win10、Python3.6.5。
1、首先按下“Win+R”組合鍵,打開運行窗口,如下圖所示。
2、在打開文本框輸入“cmd”,點擊確定,如下圖所示。
3、在打開的cmd窗口中,輸入:“python”,點擊Enter鍵,如下圖所示。
4、在Python環(huán)境中,輸入:“x = set(('hi', 'hello', 'world'))”,點擊Enter鍵,如下圖所示。
5、在Python環(huán)境中,輸入:“print(x)”,如下圖所示。
6、點擊Enter鍵,即可使用Python內(nèi)置的set()函數(shù)創(chuàng)建一個集合對象,并打印出來,如下圖所示。
16年年會抽獎網(wǎng)上有人對公司的抽獎結(jié)果又偏見,于是全員進行了抽獎代碼的review,好像是愛奇藝公司的,下面用python來實現(xiàn)一個抽獎程序。
主要功能有
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è)置三等獎的抽獎123456789101112131415161718192021222324
改進版
上面的那個初級版,假如要設(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ū)ο?/p>
8. 字符打印,print中的計算
9.open中with
#!/usr/bin/python#coding=utf-8import csvimport sysimport random
reload(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('請輸入當前獲獎層次 %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)生當前抽獎層次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()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
該段程序在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 ================================ 開始進行抽獎
共有24790 人參與抽獎
抽獎分幾個層次,請輸入:2請輸入當前獲獎層次 1 對應(yīng)的獎品個數(shù)1請輸入當前獲獎層次 2 對應(yīng)的獎品個數(shù)3抽獎字典設(shè)置為: {0: 1, 1: 3}
抽獎層次 1 下產(chǎn)出的獲獎人員有:
[['張三19826']]
抽獎層次 2 下產(chǎn)出的獲獎人員有:
[['張三18670'], ['張三23235'], ['張三15705']] 1234567891011121314151617
**2. **創(chuàng)建Die類****
5.匯總
這個可以創(chuàng)建多種玩法,隨機搖骰子只是其中的一種,還可以先讓一個人輸入一個幸運數(shù)字并儲存起來,然后再執(zhí)行程序,如果數(shù)字不等于幸運數(shù)字就不是幸運星,當數(shù)字等于時就是幸運星并結(jié)束程序——類似抽獎。。。。
總之玩法很多,看你怎么寫,用最基礎(chǔ)的知識來實現(xiàn)!
當前文章:抽獎函數(shù)python有文本框 用python寫一個抽獎小程序
分享URL:http://m.newbst.com/article14/doipjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站設(shè)計、微信小程序、網(wǎng)頁設(shè)計公司、關(guān)鍵詞優(yōu)化、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)