注釋(Comments)作用是用來向用戶提示或解釋某些代碼的作用和功能,它可以出現在代碼中的任何位置。Python 解釋器在執行代碼時會忽略注釋,不做任何處理。
Python 支持兩種類型的注釋,分別是單行注釋和多行注釋。
Python中單行注釋以井號 #
開頭,語法為:# 注釋內容
。
Python解釋器會忽略#
後整行的內容。
說明單行代碼時的單行注釋置於代碼所在行右側:
print("HelloWorld") # 這是說明單行代碼的單行注釋
說明多行代碼時的單行注釋置於這些代碼首行的上一行:
# 這是說明多行代碼的單行注釋
print("HelloWorld")
print("This is the first python program")
Tips:
- Pycharm中執行/取消單行注釋的快捷鍵是
CTRL
+/
,也可以一次選中多行將其每行變為單行注釋。
Python中多行注釋可以使用三個連續的單引號'''
或者三個連續的雙引號"""
,語法為:
''' 使用三個連續單引號的多行注釋 使用三個連續單引號的多行注釋 '''
""" 使用三個連續雙引號的多行注釋 使用三個連續雙引號的多行注釋 """
Python多行注釋不支持嵌套使用,雖然兩種多行注釋混合使用可以嵌套(從技術上講,這使用的是字符串文字,而不是注釋),但是如果必須注釋掉已經包含許多其他三重引用注釋的代碼塊,唯一安全的選擇是注釋掉每行。下面這種寫法就是錯的(雖然可能IDE不報錯):
""" 第一層 “”“ 第二層 ”“” """
當注釋符作為字符串的一部分出現時,就應該看做正常代碼的一部分,例如:
print("#HelloWorld")
輸出的就是#HelloWorld
。但是更值得注意的是,Python中字符串如果以單引號、雙引號標識和三引號標識開頭,則字符串結尾也必須是對應的標識,都可以作為字符串的開始和結束標志。
然而當字符串本身包含了單引號時,該字符串只能使用雙引號或三雙引號引起:
print("'HelloWorld'")
print("""'HelloWorld'""")
輸出均為:
'HelloWorld'
'HelloWorld'
當字符串本身包含了雙引號時,該字符串只能使用單引號或三單引號引起:
print('"HelloWorld"')
print('''"HelloWorld"''')
輸出均為:
"HelloWorld"
"HelloWorld"
當字符串本身包含了單引號和雙引號時,該字符串只能使用三單引號引起:
print(''''HelloWorld"''')
輸出均為:
'HelloWorld"
當字符串包含多行時,只能使用三引號:
print('''I Love You''')
print("""I Love You""")
輸出均為:
I
Love
You
I
Love
You
python最具特色的就是使用縮進和冒號:
來表示代碼塊,不需要使用大括號{}
。
Python中實現對代碼的縮進可以使用空格鍵或Tab鍵,縮進的空格數是可變的,但通常是采用4個空格長度作為一個縮進量(即默認情況下一個 Tab 鍵表示的空格數)。
Python對代碼縮進量要求很嚴格,同一個代碼塊的語句必須包含相同的縮進空格數。
if True:
print ("Hello")
print ("World")
else:
print ("Hello")
print ("World")
上述代碼由於最後一行縮進量和所屬代碼塊縮進量不一致,會報以下錯誤:
IndentationError: unindent does not match any outer indentation level
Tips:
Pycharm中多行代碼向前縮進的快捷鍵為選中多行後按下
Tab
,向後縮進的快捷鍵為選中多行後按下Shift
+Tab
。
函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。
空行與代碼縮進不同,空行雖然是程序代碼的一部分但並不是Python語法的一部分。所以不插入空行Python解釋器運行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的代碼,便於日後代碼的維護或重構。
如果一行Python語句太長時,可以用反斜槓\
實現多行語句:
total = a + \
b + \
c
在[]
, {}
, 或()
中的多行語句,不需要使用反斜槓\
:
total = (a +
b +
c)
Tips:
PEP 8編碼規范更推薦用小括號連接多行語句,而不推薦使用反斜槓
\
進行連接。
Python可以在同一行中使用多條語句,語句之間使用分號;
分隔:
print("Hello"); print("World")
不過將多行語句寫到一行不符合PEP 8代碼規范,並不推薦。
縮進相同的一組語句構成一個代碼塊,我們稱之代碼組。
像if
、while
、def
和class
這樣的復合語句,首行以關鍵字開始,以冒號:
結束,與該行之後的一行或多行代碼構成代碼組。
我們將首行及後面的代碼組稱為一個子句(clause)。
if True:
print ("Hello")
print ("World")
else:
print ("Hello")
print ("World")
上述代碼含有兩個代碼組,兩個字句。
Python采用PEP 8編碼規范,官方介紹為:[https://peps.python.org/pep-0008/](PEP 8)
常見的一些編碼規范為:
單行注釋#
後應有一個空格:
# 單行注釋
置於代碼右側的單行注釋要距離代碼兩個空格:
print("HelloWorld") #單行注釋
代碼的最後一行為空行:
print("HelloWorld")
每個import
語句一次只導入一個模塊:
import os
import sys
在運算符兩側、函數參數之間以及逗號後(逗號前不能有空格),使用空格進行分隔:
a, b = 0
c = a + b
不要在行尾添加分號,也不要用分號分隔同一行中的多條語句:
print("Hello"); print("World")
一般情況下,每行不超過80個字符,如果超過,使用小括號()
將多行內容連接起來,而不是用反斜槓\
進行連接。
total = (a +
b +
c)