跳轉至內容

軟體工程師手冊/語言詞典/Python

來自 Wikibooks,開放世界中的開放書籍

由荷蘭程式設計師 Guido Von Rossum 建立,他曾參與過 ABC 程式語言的開發,而 ABC 本身則源自 SETL 程式語言。ABC 使用縮排表示語法作用域並提高可讀性,而 SETL 則擁有列表推導式,並旨在使集合表示法和理論更加清晰。

Python 被描述為一種指令碼語言,通常以解釋方式執行,儘管直譯器在執行前會掃描整個原始碼進行解析,並在遇到語法或型別錯誤時停止,這可能是由於在構建具有型別限制的子節點的解析樹時發生的。

執行入口點

[編輯 | 編輯原始碼]

入口點是在最左側包含縮排的程式碼中的指令碼 if 條件語句,使用全域性變數 __name__,並查詢值為 "__main__" 的情況。

if __name__ == "__main__":
      #do program
      return

通用語法

[編輯 | 編輯原始碼]

將 0 賦值給 a,然後將 a 賦值給 b 的示例

a = 0
b = a

Python 不像 C++ 和 Java 等語言那樣使用分號來表示語句的結束,而是使用換行符來表示語句的結束。這意味著每個語句都必須放在單獨的一行。

# This is an inline comment. Everything after the # is a comment.

塊註釋以一對三引號 (""") 開始和結束。它們可以跨越多行。

"""
This is a
block comment
"""

變數宣告

[編輯 | 編輯原始碼]

變數在首次賦值時宣告。Python 是動態型別的,因此變數的型別取決於其初始值。

# integer variable:
a = 0

# float variable
c = 0.0

# string variable
d = 'Hello, world!'

函式宣告/實現

[編輯 | 編輯原始碼]

可以使用 "def" 關鍵字宣告函式,然後是函式名。函式的引數放在括號中。只有在函式作用域內的程式碼才會成為函式的一部分。

def myFunction(arg1, arg2):
    # function start

# function end

可以使用星號建立具有未知數量引數的函式。

def myFunction(*args):
    # function start

# function end

作用域

[編輯 | 編輯原始碼]

語句屬於最接近的較低縮排級別的函式作用域。存在一個未命名的全域性函式作用域。在任何作用域中宣告的變數和函式都不能在其宣告的作用域之外訪問。

print("I will always be printed")
a = 1

if __name__ == "__main__":
    print("I will also always be printed, and I can access a=", a)
    b = 2
    def f():
           c = 1

    f()

def g():
       d = 2
       def h():
           e = d
           x = b

g()


print("I can  access b=", b, "because b belongs in a compound statement block of the same functional scope (global)")
print("and f() can also be called")
print("But c, d, e, and h() can't be accessed")

條件語句

[編輯 | 編輯原始碼]

"if" 關鍵字表示條件語句。如果條件為真,則執行 if 語句作用域下的程式碼。否則,執行 else 語句作用域下的程式碼。

if A == B:
    D = C 
else:
    F = E

要依次檢查多個條件,可以使用 "elif" 關鍵字("else if" 的縮寫)。

if A == B:
    D = C
elif A > B:
    F = E 
else:
    H = G

迴圈語句

[編輯 | 編輯原始碼]

for 迴圈將遍歷給定範圍內的值。

for i in range(0, 10):
    # code here

此範圍包括起始值 (0) 但不包括結束值 (10),因此它將從 i = 0 到 i = 9。您還可以使用 for 迴圈遍歷列表。

values = []

for value in values:
    # code here

while 迴圈將迴圈,直到條件變為假。它將在每次迴圈開始時檢查條件。

while i > 20:
    # code here

輸出語句

[編輯 | 編輯原始碼]

Python 中的輸出是使用內建的 print 函式完成的。print 函式會在列印後自動開始新的一行輸出。

print("Hello, world!")

要列印多個專案,請用逗號分隔它們。每個專案都會自動在其之間列印一個空格。

print("hello", "world")

錯誤處理/恢復

[編輯 | 編輯原始碼]

<描述錯誤處理和恢復。根據需要提供示例。>

可以像這樣建立列表

# empty list
list = []

# list with values
list = [1, 2, 3]

Python 還具有 3 個內建容器:元組、集合和字典。可以透過外部庫新增更多型別的容器。

演算法

[編輯 | 編輯原始碼]

<列出此語言本機提供的演算法或演算法列表的參考。列出如果演算法不是語言的原生部分,則如何合併演算法的方法。或者,如果不可用,請說明。>

垃圾回收

[編輯 | 編輯原始碼]

垃圾回收是自動的。

物理結構

[編輯 | 編輯原始碼]

<描述檔案、庫和部件通常如何劃分和排列。>

<請包含使從其他語言切換到此語言更容易的提示。>

網路參考

[編輯 | 編輯原始碼]

書籍和文章

[編輯 | 編輯原始碼]

<列出可能有助於學習的額外書籍和文章。請包含參考書適合的讀者水平。(初學者/中級/高階)>

華夏公益教科書