軟體工程師手冊/語言字典/Python
由荷蘭程式設計師 Guido Von Rossum 建立,他曾在 ABC 程式語言上工作,而 ABC 本身源於 SETL 程式語言。ABC 使用縮排進行語法作用域和可讀性,而 SETL 則具有列表推導,並旨在實現集合符號和理論的清晰性。
Python 被描述為一種指令碼語言,通常以解釋方式執行,儘管直譯器在執行之前會掃描整個原始碼以進行解析,如果出現語法或型別錯誤,它會停止,可能是因為構建了一個解析樹,其節點對其子節點有型別限制。
入口點是在最左側包含縮排的程式碼中,使用全域性變數 __name__,並查詢值為 "__main__" 的指令碼 if 條件語句。
if __name__ == "__main__":
#do program
return
將 0 賦值給 a,然後將 a 賦值給 b 的示例
a = 0
b = a
Python 不使用分號來表示語句結束,而是使用換行符來表示。這意味著每個語句都必須放在單獨的一行。
# 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 種容器:元組、集合和字典。更多型別的容器可以透過外部庫新增。
<列出該語言本機可用的演算法或對演算法列表的引用。列出在語言中沒有本機演算法的情況下如何使用演算法。或者,如果不可用,請說明。>
垃圾回收是自動的。
<描述檔案、庫和各個部分通常如何劃分和安排。>
<請包括便於從其他語言切換到此語言的技巧。>
<列出可能會有幫助的其他書籍和文章。 請包括參考資料適合哪個級別的讀者。(初學者/中級/高階)>