函數(shù)的尾部 return 要是用的返回值 def roll_dice(number=3, points=None): print('Choice points...') if points is None: points = [] while number 0: point = random.randrange(1, 7) points.append(point) number = number - 1 return points
創(chuàng)新互聯(lián)建站長(zhǎng)期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為融安企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,融安網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
python 函數(shù)返回值有兩種形式: 1 返回一個(gè)值。 2 返回多個(gè)值。 現(xiàn)看看返回一個(gè)值的吧。
def firstvalue(a,b):
c = a + b
return c
print firstvalue(1,2)結(jié)果:3
再看看返回多個(gè)值的: 那怎么可以返回多個(gè)值呢,其他的語(yǔ)言一般調(diào)用函數(shù)的話,只能返回一個(gè)值,可能我不太熟悉所有的語(yǔ)言,我知道的語(yǔ)言只能返回一個(gè)值,而python可以返回多個(gè)值,感覺非常方便,發(fā)代碼看下:
def secondvalue(a,b):
c = a + b
return (a,b,c)
x,y,z = secondvalue(1,2)
print 'x:',x,'y:',y,'z:',z
可能上面的東西寫的有點(diǎn)簡(jiǎn)單,但是有的細(xì)節(jié)處理也很重要。順便分享下我如何學(xué)習(xí)python的經(jīng)歷把,大家沒事拍拍磚。
在Python中,一個(gè)函數(shù)的返回值可以直接輸出,示例代碼如下:
# 定義一個(gè)函數(shù)
def add(a, b):
return a + b
# 調(diào)用函數(shù)并輸出返回值
print(add(1, 2))
在這段代碼中,我們首先定義了一個(gè)名為add的函數(shù),該函數(shù)接收兩個(gè)參數(shù)a和b,并通過(guò)return語(yǔ)句返回它們的和。接著,我們調(diào)用該函數(shù)并傳入?yún)?shù)1和2,并使用print函數(shù)輸出函數(shù)的返回值,即3。
請(qǐng)注意,上面的代碼只是一個(gè)示例,實(shí)際應(yīng)用中可能需要根據(jù)實(shí)際情況進(jìn)行更多的處理,比如考慮函數(shù)沒有返回值等情況。
如果函數(shù)要返回一系列結(jié)果,我們常見的方法就是將結(jié)果放到一份列表中,然后返回給調(diào)用者。比如下面的函數(shù),返回字符串中每個(gè)單詞的首字母在真?zhèn)€字符串中的索引:
運(yùn)行結(jié)果:
上述的結(jié)果完全符合我們的預(yù)期,但 get_word_index 函數(shù)不夠簡(jiǎn)潔。下面我們嘗試使用生成器來(lái)實(shí)現(xiàn):
運(yùn)行結(jié)果:
改寫之后,不僅運(yùn)行結(jié)果符合要求,由于不需要和 result 列表交互,函數(shù)也變得非常簡(jiǎn)潔。下面我們就來(lái)詳細(xì)學(xué)習(xí)下生成器吧~
生成器是指使用 yield 表達(dá)式的函數(shù),調(diào)用生成器函數(shù)時(shí),它并不會(huì)真的運(yùn)行,而是會(huì)返回迭代器。每次在這個(gè)迭代器上面調(diào)用內(nèi)置的 next 函數(shù)時(shí),迭代器就會(huì)把生成器推進(jìn)到下一個(gè) yield 表達(dá)式那里。生成器傳給 yield 的值均會(huì)由迭代器返回給調(diào)用者。
此外,如果輸入量非常大,使用列表作為返回值,那么程序就有可能耗盡內(nèi)存并崩潰。相反,使用生成器之后,則可以應(yīng)對(duì)任意長(zhǎng)度的輸入數(shù)據(jù)。
例如,下面這個(gè)生成器函數(shù)可以獲取文件中單詞的索引,而不管文件內(nèi)容多大,該函數(shù)執(zhí)行時(shí)消耗的內(nèi)存,只由單行的文本長(zhǎng)度決定:
其中 test_generator.txt 中的內(nèi)容如下:
運(yùn)行結(jié)果:
下面這句話特別重要: 生成器函數(shù)返回的迭代器,是由狀態(tài)的,及調(diào)用者不應(yīng)該反復(fù)使用它 。我們那 word_index_iter 來(lái)說(shuō)明:
如果想重復(fù)調(diào)用,請(qǐng)將其封裝成容器:
運(yùn)行結(jié)果:
關(guān)于上述自定義容器的實(shí)現(xiàn)原理,我的另外一篇文章做了詳細(xì)介紹,鏈接奉上:
分享名稱:python函數(shù)如何返回,Python函數(shù)如何返回多個(gè)值
網(wǎng)站URL:http://chinadenli.net/article40/hecpeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、外貿(mào)建站、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、網(wǎng)站改版、虛擬主機(jī)
聲明:本網(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)