軟體工程師手冊/語言詞典/Python
由荷蘭程式設計師 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 個內建容器:元組、集合和字典。可以透過外部庫新增更多型別的容器。
<列出此語言本機提供的演算法或演算法列表的參考。列出如果演算法不是語言的原生部分,則如何合併演算法的方法。或者,如果不可用,請說明。>
垃圾回收是自動的。
<描述檔案、庫和部件通常如何劃分和排列。>
<請包含使從其他語言切換到此語言更容易的提示。>
<列出可能有助於學習的額外書籍和文章。請包含參考書適合的讀者水平。(初學者/中級/高階)>