成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡介Python版本選擇

開發 后端
上面的示例已經顯示出函數在 Python 中所處的第一類的地位,但以很微妙的方式。在使用 lambda 操作創建函數對象時,我們有一些完全常規的事物。

本文對Python的版本選擇,IDE選擇及編碼的解決方案進行了一番詳細的描述,實為Python初學者必讀的Python學習經驗心得,一種方式是主程序使用一門高級語言,比如C++進行編寫,然后對其嵌入一個腳本解釋器,在運行時動態執行一些腳本函數;

但正如我們可以使用數字 23 而無需將它與任何名稱綁定一樣(換句話說,象函數自變量一樣),我們可以使用用 lambda 創建的函數對象而不用將它與任何名稱綁定。一個函數只是我們在 Python 中對其執行某些操作的另一個值。

我們對第一類對象所執行的主要操作是將它們傳遞給 FP 內置函數 map()、reduce() 和 filter()。這些函數中的每一個都接受函數對象作為其第一個自變量。 map() 對指定列表中每個對應的項執行傳遞的函數,并返回結果列表。

 reduce() 對每個后續項執行傳遞的函數,返回的是最終結果的內部累加;例如 reduce(lambda n,m:n*m, range(1,10)) 意味著“10 的階乘”(換句話說,用每一項乘上前一次相乘的乘積)。 #t#

filter() 使用傳遞的函數對列表中的每一項“求值”,然后返回經過甄別的,通過了傳遞函數測試的項的列表。 我們還經常將函數對象傳遞給自己的定制函數,但它們通常等同于上述內置函數的組合。

通過將這三種 FP 內置函數進行組合,可以執行驚人的一系列“流”操作(都不使用語句,而只使用表達式)。 Python 中的函數循環 替換循環與替換條件塊一樣簡單。

for 可以直接轉換成 map()。對于我們的條件執行,我們需要將語句塊簡化成單一函數調用(我們正逐步接近通常的做法):while 的轉換仍需要 while_block() 函數,它本身包含語句而不僅僅是表達式。但我們需要對該函數做進一步的消除(例如對模板中的 if/else 進行短路)。

另外,因為循環主體(按設計)無法更改任何變量值,所以 <cond> 很難用在一般的測試中,例如 while myvar==7(那么,將在 while_block() 中修改全部內容)。添加更有用條件的一個方法是讓 while_block() 返回一個更有趣的值,然后將這個返回值與終止條件進行比較。有必要看一下這些消除語句的具體示例:

  1. # imperative version of "echo()"   
  2. def echo_IMP():   
  3. while 1:   
  4. x = raw_input("IMP -- ")   
  5. if x == 'quit':   
  6. break   
  7. else   
  8. print x   
  9. echo_IMP()   
  10.  
  11. # utility function for "identity with side-effect"   
  12. def monadic_print(x):   
  13. print x   
  14. return x   
  15.  
  16. # FP version of "echo()"   
  17. echo_FP = lambda: monadic_print(raw_input("FP -- "))=='quit' or echo_FP()   
  18. echo_FP()  

我們所完成的是設法將涉及 I/O、循環和條件語句的小程序表示成一個帶有遞歸的純表達式(實際上,如果需要,可以表示成能傳遞到任何其它地方的函數對象)。我們的確仍然利用了實用程序函數 monadic_print(),但這個函數是完全一般性的,可以在我們以后創建的每個函數程序表達式中重用(它是一次性成本)。

請注意,任何包含 monadic_print(x) 的表達式所求值的結果都是相同的,就象它只包含 x 一樣。FP(特別是 Haskell)對于“不執行任何操作,在進程中有副作用”的函數具有“單一體”意思。

【編輯推薦】

  1. 如何使Python嵌入C++應用程序?
  2. 深入探討Ruby與Python語法比較
  3. Python學習資料介紹分享
  4. Python學習經驗談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責任編輯:chenqingxiang 來源: 博客園
相關推薦

2010-02-24 17:38:45

Python 3.1版

2009-04-01 17:58:28

MercurialPython版本控制

2009-02-06 09:08:04

Scala函數語言輕量級

2010-05-31 14:56:59

SVN版本管理軟件

2009-12-17 16:02:58

紅旗Linux

2010-08-06 13:56:40

思科路由器IOS軟件版本

2016-08-10 17:23:36

PythonUrllibURL

2010-03-18 13:53:34

2009-08-17 15:07:18

Python學習經驗

2012-08-08 10:31:41

IBMdW

2010-02-01 10:04:25

Python模板函數

2009-02-25 10:34:57

異常處理體系Python

2011-08-17 10:11:34

MySQL數據庫MVCC

2021-02-16 23:43:53

深度學習人工智能IT

2021-07-08 06:30:03

Linux CPULinux 系統

2013-01-17 15:53:48

Windows 8

2010-03-01 17:02:16

Fedora scim

2011-06-13 09:04:50

小型企業Windows

2009-05-22 09:35:41

SQL Server版本區別版本比較

2012-11-16 09:50:32

Windbg
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久久中文字幕二区 | 中文字幕亚洲专区 | 中文字幕 欧美 日韩 | 国产精品久久久久久久久久久免费看 | 日本精品一区二区 | 国产精彩视频 | 羞羞色在线观看 | 久久久久黑人 | 久久久91精品国产一区二区精品 | av福利网| 欧洲成人午夜免费大片 | 一级黄色网页 | 亚洲夜夜爽 | 黄色小视频入口 | 亚洲欧美在线视频 | 久久999| 天天影视综合 | 国产欧美精品一区二区色综合 | 日韩中文字幕在线视频 | 日日噜噜噜夜夜爽爽狠狠视频97 | 美女视频h | 国产乱码精品一区二区三区五月婷 | 亚洲一区久久 | 久热爱 | www国产亚洲精品久久网站 | 日本免费在线观看视频 | 黄色av网站在线免费观看 | 一级免费看片 | 中文字幕在线免费视频 | 精品伦精品一区二区三区视频 | 一本大道久久a久久精二百 欧洲一区二区三区 | 欧美日韩精品免费观看 | www国产成人免费观看视频,深夜成人网 | 国产精品视频一二三区 | 亚洲看片网站 | 日日操av| 精品久久久久久 | 荷兰欧美一级毛片 | 噜噜噜噜狠狠狠7777视频 | 亚洲欧美国产一区二区三区 | 99久久国产综合精品麻豆 |