Python坐落編程排行榜第一!號稱“最孤獨Python”

Python是一種計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。

Python坐落編程排行榜第一!號稱“最孤獨Python”

Python簡介及應用領域

Python是一種解釋型腳本語言,可以應用於以下領域:

  • Web 和 Internet開發
  • 科學計算和統計
  • 教育
  • 桌面界面開發
  • 軟件開發
  • 後端開發

Python風格

Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的語言。

設計者開發時總的指導思想是,對於一個特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的Python格言(稱為The Zen of Python)裡面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。

Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。

一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字符在這一行的位置來決定的(而C語言是用一對花括號{}來明確的定出模塊的邊界的,與字符的位置毫無關係)。這一點曾經引起過爭議。因為自從C這類的語言誕生後,語言的語法含義與字符的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強制程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。

基本語法

Python坐落編程排行榜第一!號稱“最孤獨Python”

Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時儘量使用其它語

言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重複書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。

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

if age<21:

print("你不能買酒。")

print("不過你能買口香糖。")

print("這句話在if語句塊的外面。")

根據PEP的規定,必須使用4個空格來表示每級縮進(不清楚4個空格的規定如何,在實際編寫中可以自定義空格數,但是要滿足每級縮進間空格數相等)。使用Tab字符和其它數目的空格雖然都可以編譯通過,但不符合編碼規範。支持Tab字符和其它數目的空格僅僅是為兼容很舊的的Python程序和某些有問題的編輯程序。

控制語句

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))

285

Python使用lambda表示匿名函數。匿名函數體只能是表達式。比如:

>>> add=lambda x, y : x + y

>>> add(3,2)

5

Python使用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=2

Python使用'(單引號)和"(雙引號)來表示字符串。與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.

對象的方法

對象的方法是指綁定到對象的函數。調用對象方法的語法是instance.method(arguments)。它等價於調用Class.method(instance, arguments)。當定義對象方法時,必須顯式地定義第一個參數,一般該參數名都使用self,用於訪問對象的內部數據。這裡的self相當於C++, Java裡面的this變量,但是我們還可以使用任何其它合法的參數名,比如this 和 mine 等,self與C++,Java裡面的this不完全一樣,它可以被看作是一個習慣性的用法,我們傳入任何其它的合法名稱都行,比如:

class Fish:

def eat(self,food):

if food is not None:

self.hungry=False

class User:

def__init__(myself,name):

myself.name=name

#構造Fish的實例:

f=Fish()

#以下兩種調用形式是等價的:

Fish.eat(f,"earthworm")

f.eat("earthworm")

u=User('username')

print(u.name)

Python認識一些以“__”開始並以“__”結束的特殊方法名,它們用於實現運算符重載和實現多種特殊功能。

最後,關注可兒不迷路。每日都會分享一些學習小技巧。

學習資料領取處:關注、私信小編【資料】就可以領取啦。

Python坐落編程排行榜第一!號稱“最孤獨Python”


相關推薦

推薦中...