新聞中心
本文對(duì)Python的版本選擇,IDE選擇及編碼的解決方案進(jìn)行了一番詳細(xì)的描述,實(shí)為Python初學(xué)者必讀的Python學(xué)習(xí)經(jīng)驗(yàn)心得,一種方式是主程序使用一門高級(jí)語(yǔ)言,比如C++進(jìn)行編寫,然后對(duì)其嵌入一個(gè)腳本解釋器,在運(yùn)行時(shí)動(dòng)態(tài)執(zhí)行一些腳本函數(shù);

創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括閩清網(wǎng)站建設(shè)、閩清網(wǎng)站制作、閩清網(wǎng)頁(yè)制作以及閩清網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,閩清網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到閩清省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
但正如我們可以使用數(shù)字 23 而無(wú)需將它與任何名稱綁定一樣(換句話說(shuō),象函數(shù)自變量一樣),我們可以使用用 lambda 創(chuàng)建的函數(shù)對(duì)象而不用將它與任何名稱綁定。一個(gè)函數(shù)只是我們?cè)?Python 中對(duì)其執(zhí)行某些操作的另一個(gè)值。
我們對(duì)第一類對(duì)象所執(zhí)行的主要操作是將它們傳遞給 FP 內(nèi)置函數(shù) map()、reduce() 和 filter()。這些函數(shù)中的每一個(gè)都接受函數(shù)對(duì)象作為其第一個(gè)自變量。 map() 對(duì)指定列表中每個(gè)對(duì)應(yīng)的項(xiàng)執(zhí)行傳遞的函數(shù),并返回結(jié)果列表。
reduce() 對(duì)每個(gè)后續(xù)項(xiàng)執(zhí)行傳遞的函數(shù),返回的是最終結(jié)果的內(nèi)部累加;例如 reduce(lambda n,m:n*m, range(1,10)) 意味著“10 的階乘”(換句話說(shuō),用每一項(xiàng)乘上前一次相乘的乘積)。 #t#
filter() 使用傳遞的函數(shù)對(duì)列表中的每一項(xiàng)“求值”,然后返回經(jīng)過(guò)甄別的,通過(guò)了傳遞函數(shù)測(cè)試的項(xiàng)的列表。 我們還經(jīng)常將函數(shù)對(duì)象傳遞給自己的定制函數(shù),但它們通常等同于上述內(nèi)置函數(shù)的組合。
通過(guò)將這三種 FP 內(nèi)置函數(shù)進(jìn)行組合,可以執(zhí)行驚人的一系列“流”操作(都不使用語(yǔ)句,而只使用表達(dá)式)。 Python 中的函數(shù)循環(huán) 替換循環(huán)與替換條件塊一樣簡(jiǎn)單。
for 可以直接轉(zhuǎn)換成 map()。對(duì)于我們的條件執(zhí)行,我們需要將語(yǔ)句塊簡(jiǎn)化成單一函數(shù)調(diào)用(我們正逐步接近通常的做法):while 的轉(zhuǎn)換仍需要 while_block() 函數(shù),它本身包含語(yǔ)句而不僅僅是表達(dá)式。但我們需要對(duì)該函數(shù)做進(jìn)一步的消除(例如對(duì)模板中的 if/else 進(jìn)行短路)。
另外,因?yàn)檠h(huán)主體(按設(shè)計(jì))無(wú)法更改任何變量值,所以
- # imperative version of "echo()"
- def echo_IMP():
- while 1:
- x = raw_input("IMP -- ")
- if x == 'quit':
- break
- else
- print x
- echo_IMP()
- # utility function for "identity with side-effect"
- def monadic_print(x):
- print x
- return x
- # FP version of "echo()"
- echo_FP = lambda: monadic_print(raw_input("FP -- "))=='quit' or echo_FP()
- echo_FP()
我們所完成的是設(shè)法將涉及 I/O、循環(huán)和條件語(yǔ)句的小程序表示成一個(gè)帶有遞歸的純表達(dá)式(實(shí)際上,如果需要,可以表示成能傳遞到任何其它地方的函數(shù)對(duì)象)。我們的確仍然利用了實(shí)用程序函數(shù) monadic_print(),但這個(gè)函數(shù)是完全一般性的,可以在我們以后創(chuàng)建的每個(gè)函數(shù)程序表達(dá)式中重用(它是一次性成本)。
請(qǐng)注意,任何包含 monadic_print(x) 的表達(dá)式所求值的結(jié)果都是相同的,就象它只包含 x 一樣。FP(特別是 Haskell)對(duì)于“不執(zhí)行任何操作,在進(jìn)程中有副作用”的函數(shù)具有“單一體”意思。
網(wǎng)站名稱:簡(jiǎn)介Python版本選擇
URL網(wǎng)址:http://www.dlmjj.cn/article/dpidihs.html


咨詢
建站咨詢
