/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
Python是一種面向?qū)ο、直譯式計算機程序設(shè)計語言,也是一種功能強大的通用型語言,已經(jīng)具有近二十年的發(fā)展歷史,成熟且穩(wěn)定。它包含了一組完善而且容易理解的標(biāo)準(zhǔn)庫,能夠輕松完成很多常見的任務(wù)。它的語法非常簡捷和清晰,與其它計算機程序設(shè)計語言不一樣,它采用縮進(jìn)來定義語句塊。
源于希臘神話。 派森是巴那撒斯山洞中的巨蛇,為太陽神阿波羅(Apollo)所殺,阿波羅因此得到「派森神」的稱號!
Python的創(chuàng)始人為Guido van Rossum。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,做為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為程序的名字,是因為他是一個叫Monty Python的喜劇團體的愛好者。
Python語法簡潔而清晰,具有豐富和強大的類庫。它常被昵稱為膠水語言,它能夠很輕松的把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C++重寫。
[Python入門指南].(Python.Tutorial).Guido.Van.Rossum.文字版.pdf
Python簡明教程.pdf
深入_Python_3.pdf
Python的設(shè)計目標(biāo)之一是讓代碼具備高度的可閱讀性。它設(shè)計時盡量使用其它語言經(jīng)常使用的標(biāo)點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態(tài)語言如C、Pascal那樣需要重復(fù)書寫聲明語句,也不像它們的語法那樣經(jīng)常有特殊情況和驚喜。
縮進(jìn)
Python開發(fā)者有意讓違反了縮進(jìn)規(guī)則的程序不能通過編譯,以此來強制程序員養(yǎng)成良好的編程習(xí)慣。并且Python語言利用縮進(jìn)表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號或者某種關(guān)鍵字。增加縮進(jìn)表示語句塊的開始,而減少縮進(jìn)則表示語句塊的退出?s進(jìn)成為了語法的一部分。例如if語句:
ifage<21:
print("你不能買酒。")
print("不過你能買口香糖。")
print("這句話處於if語句塊的外面。")
注:上述例子為python 3.0版本的代碼
根據(jù)PEP的規(guī)定,必須使用4個空格來表示每級縮進(jìn)(不清楚4個空格的規(guī)定如何,在實際編寫中可以自定義空格數(shù),但是要滿足每級縮進(jìn)間空格數(shù)相等)。使用Tab字符和其它數(shù)目的空格雖然都可以編譯通過,但不符合編碼規(guī)范。支持Tab字符和其它數(shù)目的空格僅僅是為兼容很舊的的Python程序和某些有問題的編輯程序。
控制語句
if語句,當(dāng)條件成立時運行語句塊。經(jīng)常與else, elif(相當(dāng)于else if) 配合使用。
for語句,遍歷列表、字符串、字典、集合等迭代器,依次處理迭代器中的每個元素。
while語句,當(dāng)條件為真時,循環(huán)運行語句塊。
try語句。與except,finally配合使用處理在程序運行中出現(xiàn)的異常情況。
class語句。用于定義類型。
def語句。用于定義函數(shù)和類型的方法。
pass語句。表示此行為空,不運行任何操作。
assert語句。用于程序調(diào)適階段時測試運行條件是否滿足。
with語句。Python2.6以后定義的語法,在一個場景中運行語句塊。比如,運行語句塊前加密,然后在語句塊運行退出后解密。
yield語句。在迭代器函數(shù)內(nèi)使用,用于返回一個元素。自從Python 2.5版本以后。這個語句變成一個運算符。
raise語句。制造一個錯誤。
import語句。導(dǎo)入一個模塊或包。
from import語句。從包導(dǎo)入模塊或從模塊導(dǎo)入某個對象。
import as語句。將導(dǎo)入的對象賦值給一個變量。
in語句。判斷一個對象是否在一個字符串/列表/元組里。
表達(dá)式
Python的表達(dá)式寫法與C/C++類似。只是在某些寫法有所差別。
主要的算術(shù)運算符與C/C++類似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負(fù)、乘法、除法、整除、乘方、取補、取模。>>, <<表示右移和左移。&, |, ^表示二進(jìn)制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用于比較兩個表達(dá)式的值,分別表示大于、小于、等于、不等于、小于等于、大于等于。在這些運算符里面,~, |, ^, &, <<, >>必須應(yīng)用于整數(shù)。
Python使用and, or, not表示邏輯運算。
is, is not用于比較兩個變量是否是同一個對象。in, not in用于判斷一個對象是否屬于另外一個對象。
Python支持“列表推導(dǎo)式”(list comprehension),比如計算0-9的平方和:
>>> sum(x * x for x in range(10))
285
Python使用lambda表示匿名函數(shù)。匿名函數(shù)體只能是表達(dá)式。比如:
>>> add=lambda x, y : x + y
>>> add(3,2)
Python使用y if cond else x表示條件表達(dá)式。意思是當(dāng)cond為真時,表達(dá)式的值為y,否則表達(dá)式的值為x。相當(dāng)于C++和Java里的cond?y:x。
Python區(qū)分列表(list)和元組(tuple)兩種類型。list的寫法是[1,2,3],而tuple的寫法是(1,2,3)?梢愿淖僱ist中的元素,而不能改變tuple。在某些情況下,tuple的括號可以省略。tuple對于賦值語句有特殊的處理。因此,可以同時賦值給多個變量,比如:
>>> x, y=1,2#同時給x,y賦值,最終結(jié)果:x=1, y=2
特別地,可以使用以下這種形式來交換兩個變量的值:
>>> x, y=y, x #最終結(jié)果:y=1, x=2
Python使用'(單引號)和"(雙引號)來表示字符串。與Perl、Unix Shell語言或者Ruby、Groovy等語言不一樣,兩種符號作用相同。一般地,如果字符串中出現(xiàn)了雙引號,就使用單引號來表示字符串;反之則使用雙引號。如果都沒有出現(xiàn),就依個人喜好選擇。出現(xiàn)在字符串中的\(反斜杠)被解釋為特殊字符,比如\n表示換行符。表達(dá)式前加r指示Python不解釋字符串中出現(xiàn)的\。這種寫法通常用于編寫正則表達(dá)式或者Windows文件路徑。
Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的類型有str, bytes, list, tuple等。它的語法是...[left:right]或者...[left:right:stride]。假定nums變量的值是[1, 3, 5, 7, 8, 13, 20],那么下面幾個語句為真:
nums[2:5] == [5, 7, 8] 從下標(biāo)為2的元素切割到下標(biāo)為5的元素,但不包含下標(biāo)為5的元素。
nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最后一個元素。
nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數(shù)第3個元素。
nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回所有元素。改變新的列表不會影響到nums。
nums[1:5:2] == [3, 7] 從下標(biāo)為1的元素切割到下標(biāo)為5的元素但不包含下標(biāo)為5的元素,且步長為2。
函數(shù)
Python的函數(shù)支持遞歸、默認(rèn)參數(shù)值、可變參數(shù),但不支持函數(shù)重載。為了增強代碼的可讀性,可以在函數(shù)后書寫“文檔字符串”(Documentation Strings,或者簡稱docstrings),用于解釋函數(shù)的作用、參數(shù)的類型與意義、返回值類型與取值范圍等?梢允褂脙(nèi)置函數(shù)help()打印出函數(shù)的使用幫助。比如:
>>> def randint(a, b):
... "Return random integer in range [a, b], including both end points."...
>>> help(randint)
Help on function randint in module __main__:
randint(a, b)
Return random integer inrange[a, b], including both end points.
對象的方法
對象的方法是指綁定到對象的函數(shù)。調(diào)用對象方法的語法是instance.method(arguments)。它等價于調(diào)用Class.method(instance, arguments)。當(dāng)定義對象方法時,必須顯式地定義第一個參數(shù),一般該參數(shù)名都使用self,用于訪問對象的內(nèi)部數(shù)據(jù)。這里的self相當(dāng)于C++, Java里面的this變量,但是我們還可以使用任何其它合法的參數(shù)名,比如this 和 mine 等,self與C++,Java里面的this不完全一樣,它可以被看作是一個習(xí)慣性的用法,我們傳入任何其它的合法名稱都行,比如:
classFish:
defeat(self,food):
iffoodisnotNone:
self.hungry=False
classUser:
def__init__(myself,name):
myself.name=name
#構(gòu)造Fish的實例:
f=Fish()
#以下兩種調(diào)用形式是等價的:
Fish.eat(f,"earthworm")
f.eat("earthworm")
u=User('username')
print(u.name)
Python認(rèn)識一些以“__”開始并以“__”結(jié)束的特殊方法名,它們用于實現(xiàn)運算符重載和實現(xiàn)多種特殊功能。
類型
Python采用動態(tài)類型系統(tǒng)。在編譯的時候,Python不會檢查對象是否擁有被調(diào)用的方法或者屬性,而是直至運行時,才做出檢查。所以操作對象時可能會拋出異常。不過,雖然Python采用動態(tài)類型系統(tǒng),它同時也是強類型的。Python禁止沒有明確定義的操作,比如數(shù)字加字符串。
與其它面向?qū)ο笳Z言一樣,Python允許程序員定義類型。構(gòu)造一個對象只需要像函數(shù)一樣調(diào)用類型即可,比如,對于前面定義的Fish類型,使用Fish()。類型本身也是特殊類型type的對象(type類型本身也是type對象),這種特殊的設(shè)計允許對類型進(jìn)行反射編程。
Python在英文中的意思是大蟒蛇,它的圖標(biāo)也像兩只大蟒蛇纏繞在一起。Python作為是一種面向?qū)ο、解釋型計算機程序設(shè)計語言,由GuidovanRossum于1989年發(fā)明。自Python語言誕生至今,它逐漸被廣泛應(yīng)用于處理系統(tǒng)管理任
關(guān)于騰牛 | 聯(lián)系方式 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告聯(lián)系 | 網(wǎng)站地圖 | 友情鏈接
Copyright 2005-2024 QQTN.com 【騰牛網(wǎng)】 版權(quán)所有 鄂ICP備2022005668號-1 | 鄂公網(wǎng)安備 42011102000260號
聲明:本站非騰訊QQ官方網(wǎng)站 所有軟件和文章來自互聯(lián)網(wǎng) 如有異議 請與本站聯(lián)系 本站為非贏利性網(wǎng)站 不接受任何贊助和廣告