偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

講述Python 特性大總結(jié)

開發(fā) 后端
Python 是一個(gè)過(guò)程性和面向?qū)ο笳Z(yǔ)言,它實(shí)際上包含了實(shí)現(xiàn)完整函數(shù)編程所需的每樣事物,這種語(yǔ)言具有非常簡(jiǎn)捷而清晰的語(yǔ)法特點(diǎn),下面說(shuō)一下Python 特性問(wèn)題。

本文著重介紹Python 特性的問(wèn)題:這種語(yǔ)言具有非常透明的語(yǔ)法特點(diǎn),適合不同環(huán)境的各種高層任務(wù),幾乎可以在所有的操作系統(tǒng)中運(yùn)行,好了,想了解Python 特性就隨本文進(jìn)入吧。

我們***從最難的問(wèn)題開始:“到底什么是函數(shù)編程 (FP)?”一個(gè)答案可能會(huì)說(shuō) FP 就是您在使用例如 Lisp、Scheme、Haskell、ML、OCAML、Clean、Mercury、Erlang(或其它一些)語(yǔ)言進(jìn)行編程時(shí)所做的。

這是一個(gè)穩(wěn)妥的答案,但不能很確切地闡明問(wèn)題。不幸的是,即使是函數(shù)程序員他們自己也很難對(duì) FP 究竟是什么有個(gè)一致的認(rèn)識(shí)。“盲人摸象”的故事用來(lái)形容這一情況似乎很合適。

還可以放心地將 FP 與“命令編程”(使用例如 C、Pascal、C++、Java、Perl、Awk、TCL 以及其它大多數(shù)語(yǔ)言所執(zhí)行的操作,至少是在很大程度上)進(jìn)行對(duì)比。 從個(gè)人角度來(lái)說(shuō),我會(huì)將函數(shù)編程粗略地描繪為至少具有以下幾個(gè)特征。稱得上函數(shù)性的語(yǔ)言使這些事情變得簡(jiǎn)單,而使其它事情變得困難或不可能:

函數(shù)是***類(對(duì)象)。即,可以對(duì)“數(shù)據(jù)”進(jìn)行的每樣操作都可以使用函數(shù)本身做到(例如將一個(gè)函數(shù)傳遞給另一個(gè)函數(shù))。 將遞歸用作主要的控制結(jié)構(gòu)。在某些語(yǔ)言中,不存在其它“循環(huán)”構(gòu)造。 重點(diǎn)集中在列表 LISt 處理(例如,名稱 Lisp)。列表經(jīng)常和子列表的遞歸一起使用以替代循環(huán)。#t#
 
“純”函數(shù)語(yǔ)言能夠避免副作用。這不包括在命令語(yǔ)言中最普遍的模式,即指定***個(gè),然后將另一個(gè)值指定給同一個(gè)變量來(lái)跟蹤程序狀態(tài)。 FP 不鼓勵(lì)或根本不允許出現(xiàn)語(yǔ)句,取而代之是使用表達(dá)式求值(換句話說(shuō),即函數(shù)加上自變量)。在很純粹的情況下,一個(gè)程序就是一個(gè)表達(dá)式(加上支持的定義)。

FP 關(guān)心的是計(jì)算什么而不是如何計(jì)算。 許多 FP 利用了“更高等級(jí)”函數(shù)(換句話說(shuō),就是函數(shù)對(duì)一些函數(shù)操作,而這些函數(shù)又對(duì)其它函數(shù)操作)。
 函數(shù)編程的提倡者認(rèn)為所有這些特征都導(dǎo)致更快速的開發(fā)更短以及錯(cuò)誤更少的代碼。

而且,計(jì)算機(jī)科學(xué)、邏輯和數(shù)學(xué)領(lǐng)域的高級(jí)理論學(xué)家發(fā)現(xiàn)證明函數(shù)語(yǔ)言和程序的正式性能比命令語(yǔ)言和程序容易得多。 固有的 Python 函數(shù)能力 自從 Python 1.0 以來(lái),Python 具有上面列出的大多數(shù) FP 特征。但對(duì)于大多數(shù) Python 特性,它們以一種非?;旌系恼Z(yǔ)言呈現(xiàn)。

很大程度上是因?yàn)?Python 的 OOP 特性,您可以使用希望使用的部分而忽略其余部分(直到在稍后需要它為止)。使用 Python 2.0,列表內(nèi)涵添加了一些非常棒的“句法上的粉飾”。雖然列表內(nèi)涵沒(méi)有添加什么新的能力,但它們使許多舊的能力看起來(lái)好了許多。

Python 特性中 FP 的基本元素是函數(shù) map()、reduce() 和 filter(),以及運(yùn)算符 lambda。在 Python 1.x 中,apply() 函數(shù)對(duì)于將一個(gè)函數(shù)的列表返回值直接應(yīng)用于另一個(gè)函數(shù)也很方便。Python 2.0 為這一目的提供了改進(jìn)的語(yǔ)法??赡茏屓顺泽@,但很少的這幾個(gè)函數(shù)(以及基本運(yùn)算符)幾乎足以編寫任何 Python程序;

特別是,所有的流控制語(yǔ)句(if、elif、else、assert、try 、except、finally、for、break、continue、while、def)可以只使用 FP 函數(shù)和運(yùn)算符以函數(shù)風(fēng)格處理。雖然實(shí)際上消除程序中的所有流控制命令可能只對(duì)加入“混亂的 Python”競(jìng)爭(zhēng)(與看上去非常象 Lisp 的代碼)有用,但是理解 FP 是如何使用函數(shù)和遞歸來(lái)表示流控制是值得的。

消除流控制語(yǔ)句 在我們執(zhí)行消除聯(lián)系時(shí)要考慮的***件事是 Python “短路”了布爾表達(dá)式的求值這一事實(shí)。這樣就提供了表達(dá)式版本的 if/ elif/ else 塊(假設(shè)每塊都調(diào)用一個(gè)函數(shù),通??傆锌赡苓@樣安排)。下面是具體方法:

  1. # Normal statement-based flow control   
  2. if <cond1>: func1()   
  3. elif <cond2>: func2()   
  4. else: func3()   
  5.  
  6. # Equivalent "short circuit" expression   
  7. (<cond1> and func1()) or (<cond2> and func2()) or (func3())   
  8.  
  9. # Example "short circuit" expression   
  10. >>> x = 3   
  11. >>> def pr(s): return s   
  12. >>> (x==1 and pr('one')) or (x==2 and pr('two')) or (pr('other'))   
  13. 'other'   
  14. >>> x = 2   
  15. >>> (x==1 and pr('one')) or (x==2 and pr('two')) or (pr('other'))   
  16. 'two'  
責(zé)任編輯:chenqingxiang 來(lái)源: 51CTO.com
相關(guān)推薦

2010-03-01 18:36:59

Python標(biāo)準(zhǔn)語(yǔ)言

2010-03-05 15:43:46

Android SDK

2021-03-02 09:34:41

Nodejs14前端代碼

2009-11-11 16:37:50

ADO.NET新增特性

2013-02-25 14:08:56

Windows Ser

2010-01-07 10:23:16

華為3Com交換機(jī)

2010-02-03 13:37:59

Python 特性

2009-12-25 10:36:10

ASP.NET 和 X

2009-11-12 11:34:52

2012-06-21 09:21:06

微軟Windows Pho

2010-02-23 16:32:14

Python編程

2010-01-14 13:29:33

三層交換機(jī)特性

2010-02-03 10:12:53

Python模塊

2010-02-01 09:55:42

Python HTTP

2017-11-07 13:24:38

Pythontime模塊datetime

2010-02-24 13:45:40

Python開發(fā)人員

2010-02-01 13:25:32

Python腳本

2009-09-27 16:51:40

Hibernate U

2010-03-01 17:47:53

Python語(yǔ)言

2010-02-26 14:50:17

Python操作語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)