python核心技術

基本語法python

Python的設計目標之一是讓代碼具有高度的可閱讀性。它設計時儘可能使用其它語言常用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其餘的靜態語言如C、Pascal那樣須要重複書寫聲明語句,也不像它們的語法那樣常常有特殊狀況和意外。程序員

縮進正則表達式

Python開發者有意讓違反了縮進規則的程序不能經過編譯,以此來強制程序員養成良好的編程習慣。而且Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括號或者某種關鍵字。增長縮進表示語句塊的開始,而減小縮進則表示語句塊的退出。縮進成爲了語法的一部分。例如if語句:python3編程

if age<21:
    print("你不能買酒。")
    print("不過你能買口香糖。")
print("這句話在if語句塊的外面。")
根據PEP的規定,必須使用4個空格來表示每級縮進(不清楚4個空格的規定如何,在實際編寫中能夠自定義空格數,可是要知足每級縮進間空格數相等)。使用Tab字符和其它數目的空格雖然均可以編譯經過,但不符合編碼規範。支持Tab字符和其它數目的空格僅僅是爲兼容很舊的的Python程序和某些有問題的編輯程序。dom

控制語句ide

if語句,當條件成立時運行語句塊。常常與else, elif(至關於else if) 配合使用。
for語句,遍歷列表、字符串、字典、集合等迭代器,依次處理迭代器中的每一個元素。
while語句,當條件爲真時,循環運行語句塊。
try語句,與except,finally配合使用處理在程序運行中出現的異常狀況。
class語句,用於定義類型。函數

def語句,用於定義函數和類型的方法。
pass語句,表示此行爲空,不運行任何操做。
assert語句,用於程序調試階段時測試運行條件是否知足。
with語句,Python2.6之後定義的語法,在一個場景中運行語句塊。好比,運行語句塊前加密,而後在語句塊運行退出後解密。
yield語句,在迭代器函數內使用,用於返回一個元素。自從Python 2.5版本之後。這個語句變成一個運算符。測試

raise語句,製造一個錯誤。
import語句,導入一個模塊或包。
from import語句,從包導入模塊或從模塊導入某個對象。
import as語句,將導入的對象賦值給一個變量。
in語句,判斷一個對象是否在一個字符串/列表/元組裏。編碼

表達式加密

Python的表達式寫法與C/C++相似。只是在某些寫法有所差異。
主要的算術運算符與C/C++相似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負、乘法、除法、整除、乘方、取補、取餘。>>, <<表示右移和左移。&, |, ^表示二進制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用於比較兩個表達式的值,分別表示大於、小於、等於、不等於、小於等於、大於等於。在這些運算符裏面,~, |, ^, &, <<, >>必須應用於整數。
Python使用and, or, not表示邏輯運算。
is, is not用於比較兩個變量是不是同一個對象。in, not in用於判斷一個對象是否屬於另一個對象。

Python支持「列表推導式」(list comprehension),好比計算0-9的平方和:>>> sum(x * x for x in range(10))285Python使用lambda表示匿名函數。匿名函數體只能是表達式。好比:>>> add=lambda x, y : x + y>>> add(3,2)5Python使用y if cond else x表示條件表達式。意思是當cond爲真時,表達式的值爲y,不然表達式的值爲x。至關於C++和Java裏的cond?y:x。Python區分列表(list)和元組(tuple)兩種類型。list的寫法是[1,2,3],而tuple的寫法是(1,2,3)。能夠改變list中的元素,而不能改變tuple。在某些狀況下,tuple的括號能夠省略。tuple對於賦值語句有特殊的處理。所以,能夠同時賦值給多個變量,好比:>>> x, y=1,2#同時給x,y賦值,最終結果:x=1, y=2特別地,可使用如下這種形式來交換兩個變量的值:>>> x, y=y, x #最終結果:y=1, x=2Python使用'(單引號)和"(雙引號)來表示字符串。與Perl、Unix Shell語言或者Ruby、Groovy等語言不同,兩種符號做用相同。通常地,若是字符串中出現了雙引號,就使用單引號來表示字符串;反之則使用雙引號。若是都沒有出現,就依我的喜愛選擇。出如今字符串中的\(反斜槓)被解釋爲特殊字符,好比\n表示換行符。表達式前加r指示Python不解釋字符串中出現的\。這種寫法一般用於編寫正則表達式或者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] 從下標爲2的元素切割到下標爲5的元素,但不包含下標爲5的元素。nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最後一個元素。nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數第3個元素。nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回全部元素。改變新的列表不會影響到nums。nums[1:5:2] == [3, 7] 從下標爲1的元素切割到下標爲5的元素但不包含下標爲5的元素,且步長爲2。函數Python的函數支持遞歸、默認參數值、可變參數,但不支持函數重載。爲了加強代碼的可讀性,能夠在函數後書寫「文檔字符串」(Documentation Strings,或者簡稱docstrings),用於解釋函數的做用、參數的類型與意義、返回值類型與取值範圍等。可使用內置函數help()打印出函數的使用幫助。好比:>>> 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.

相關文章
相關標籤/搜索