函數(shù)定義:
目前創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、始興網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
Common_multiple(number1, number2):? # 求兩個(gè)數(shù)的最小公倍數(shù)
Maximum_common_divisor(*number):? # 求任意多個(gè)數(shù)的最小公倍數(shù)
Minimum_common_multiple(*number):? # 求任意多個(gè)數(shù)的最大公因數(shù)
程序縮進(jìn)如下:
程序縮進(jìn)
運(yùn)行結(jié)果展示:
運(yùn)行結(jié)果
函數(shù)具體代碼:縮進(jìn)版本點(diǎn)擊自取
def Common_multiple(number1, number2):? # 求兩個(gè)數(shù)的最小公倍數(shù)
while number1 % number2 != 0:
number1, number2 = number2, (number1 % number2)
return number2
def Maximum_common_divisor(*number):? # 求任意多個(gè)數(shù)的最小公倍數(shù)
while len(number) 1:
number = [Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
def Minimum_common_multiple(*number):? # 求任意多個(gè)數(shù)的最大公因數(shù)
while len(number) 1:
number = [number[i]*number[i+1]/Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
我們經(jīng)常會(huì)用到python的內(nèi)置函數(shù),但python庫(kù)中的內(nèi)置函數(shù)何其之多,有時(shí)候難免會(huì)忘了這個(gè)函數(shù)的功能。這時(shí)候我們可以在
pycharm中把鼠標(biāo)定位到這個(gè)函數(shù),然后用快捷鍵Ctrl+B去查看:
更多技術(shù)請(qǐng)關(guān)注Python視頻教程。
16年年會(huì)抽獎(jiǎng)網(wǎng)上有人對(duì)公司的抽獎(jiǎng)結(jié)果又偏見(jiàn),于是全員進(jìn)行了抽獎(jiǎng)代碼的review,好像是愛(ài)奇藝公司的,下面用python來(lái)實(shí)現(xiàn)一個(gè)抽獎(jiǎng)程序。
主要功能有
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))#下面依次類(lèi)推可以設(shè)置三等獎(jiǎng)的抽獎(jiǎng)123456789101112131415161718192021222324
改進(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ì)?,?lèi)中包含一個(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. 類(lèi)和面向?qū)ο?/p>
8. 字符打印,print中的計(jì)算
9.open中with
#!/usr/bin/python#coding=utf-8import csvimport sysimport random
reload(sys)
sys.setdefaultencoding('utf8')#coding=utf-8print("開(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)#類(lèi)功能定義完畢,開(kāi)始初始化并使用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 ================================ 開(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']] 1234567891011121314151617
例如stat位于os module,那么可以help(os),出現(xiàn)如上圖的結(jié)果,其中FILE就是其源文件位置,當(dāng)然,如果這個(gè)module是c module,那就看不到相應(yīng)的源碼了。
你提到os模塊中沒(méi)有stat這個(gè)函數(shù),那時(shí)因?yàn)樗趐osix或者nt module中實(shí)現(xiàn),os模塊根據(jù)當(dāng)前的操作系統(tǒng)來(lái)導(dǎo)入相應(yīng)的實(shí)現(xiàn)。
python 所有版本的源代碼可以在這里下載到:
python沒(méi)有像matlab那樣的函數(shù)可以直接查看某個(gè)函數(shù)的源代碼,只有去下載整個(gè)源代碼查看了,不過(guò)找起來(lái)應(yīng)該也不難,另外你也可以寫(xiě)一個(gè)小程序來(lái)查看對(duì)應(yīng)函數(shù)的源代碼。
Python的函數(shù)調(diào)用方式是通過(guò)import來(lái)調(diào)用的對(duì)應(yīng)的py文件。
庫(kù)函數(shù)有內(nèi)建函數(shù)build_in(會(huì)寫(xiě)python的時(shí)候已經(jīng)可以不用看了,不會(huì)寫(xiě)的時(shí)候看也看不懂),和通過(guò)pip直接下載或者github上下載再安裝的函數(shù)。本質(zhì)上都是py文件。后者有時(shí)候由于環(huán)境的不同需要自行修改(這種情況較少),一般在安裝路徑下"\Lib\site-packages"文件夾中存在。
學(xué)習(xí)庫(kù)函數(shù)最好的方法是看網(wǎng)上官方的幫助文檔,此外還可以通過(guò)python自帶的dir()方法查看所有的屬性和方法,或者用help()方法查看幫助文檔(部分別人造的輪子不一定有)。
另外推薦使用ipython,Python創(chuàng)始人之一的成員編寫(xiě)的交互式系統(tǒng)。
三種?法可以查看內(nèi)建模塊的代碼,以random模塊為例:
1. 使?help(random)
2. 利?random.__file__查看位置,然后打開(kāi)后綴名為.py的?件。
3. 命令?輸?python -v,然后倒?模塊時(shí),會(huì)?動(dòng)顯?位置。
文章題目:python抽出函數(shù)代碼,python 抽樣函數(shù)
URL地址:http://chinadenli.net/article12/hddjgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、微信公眾號(hào)、關(guān)鍵詞優(yōu)化、建站公司、外貿(mào)建站、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)