1 Python 注釋概述
注釋(Comments)是用來向開發者(用戶)提示或解釋某些代碼的思路、作用和功能等,可以添加到代碼中的任何位置。Python 解釋器(Python Interpreter)在執行程序(代碼)時會忽略注釋部分,不做任何處理,即注釋部分不會被 Python 解釋器執行。
在代碼中添加適當的注釋量很重要,注釋通常占源代碼的 1/3 左右。
Python 支持兩種類型的注釋:單行注釋和多行注釋。
2 Python 注釋的作用
2.1 調試代碼
在調試(Debug)程序的過程中,單行注釋可以用來臨時快速注釋某些代碼,達到縮小錯誤范圍、提高調試程序效率的目的。
具體操作如下:
在不確定具體是哪一行代碼出錯的情況下,我們可以先把覺得可能有問題的代碼注釋起來,然后再運行程序觀察結果。如果程序可以正常執行,則可以說明錯誤就是由這段代碼引起的;反之,如果依然出現相同的錯誤,則可以說明錯誤不是由這段代碼引起的。
2.2 提高程序的可讀性
注釋的最大作用是提高程序的可讀性,沒有注釋的程序是很難讓人看懂的,說是天書也不為過。
更甚至,自己寫的代碼,過了一段時間以后,自己也會忘記思路或者目的。
3 Python 單行注釋
3.1 Python 單行注釋概述
Python 中是使用井號#作為單行注釋的符號,其語法格式如下所示:
# 添加的注釋內容
對以上語法格式的說明:
#作為單行注釋的符號。- 從井號
#開始,直到這行結束為止的所有內容都是注釋。Python 解釋器遇到#時,會忽略它后面的整行內容,即#之后的一行內容都屬於注釋部分。
3.2 單行注釋注釋單行代碼的情況
單行注釋注釋單行代碼時通常會將注釋放在代碼的右側,與代碼之間用兩個空格隔開,如下所示:
print("碼農阿傑") # 輸出筆者的微信公眾號名稱
print('https://www.cnblogs.com/manongajie/') # 輸出筆者的博客園博客地址
print('https://blog.csdn.net/manongajie/') # 輸出筆者的CSDN博客地址
3.3 單行注釋注釋多行代碼的情況
單行注釋注釋多行代碼時通常將注釋放在代碼的上一行,如下所示:
# 使用 print() 內置函數輸出字符串
print("微信公眾號:碼農阿傑")
print("博客園博客地址 https://www.cnblogs.com/manongajie/")
print("CSDN 博客地址 https://blog.csdn.net/manongajie/")
# 使用 print() 內置函數輸出數字
print(520)
print(521)
print(1314)
3.4 單行注釋注意事項
3.4.1 單行注釋符號作為字符串的一部分存在
當單行注釋符號#作為字符串的一部分出現時,就不能再將它當做單行注釋標記,而應該當做是字符串的一部分(字符串的字符),如下所示:
print('# 微信公眾號:碼農阿傑')
print("# 博客園博客地址 https://www.cnblogs.com/manongajie/""")
print("# CSDN 博客地址 https://blog.csdn.net/manongajie/")
運行結果:
# 微信公眾號:碼農阿傑
# 博客園博客地址 https://www.cnblogs.com/manongajie/
# CSDN 博客地址 https://blog.csdn.net/manongajie/
對以上代碼說明:
- Python 沒有將井號
#當做單行注釋標記,而是將它當做字符串的一部分。
4 Python 多行注釋
4.1 Python 多行注釋概述
多行注釋指的是一次性注釋程序中多行代碼,也可以是一行代碼。
Python 中支持使用三個連續的單引號'''分別作為注釋的開頭和結尾,或者三個連續的雙引號"""分別作為注釋的開頭和結尾,一次性注釋多行或單行內容。
多行注釋通常用來為 Python 函數、類、模塊等等添加功能、版本和作者等描述信息。
4.2 三個連續的單引號注釋
三個連續的單引號注釋內容具體格式如下:
'''
使用三個連續的單引號分別作為注釋的開頭和結尾
可以一次性注釋多行內容或單行內容
'''
4.3 三個連續的雙引號注釋
"""
使用三個連續的雙引號分別作為注釋的開頭和結尾
可以一次性注釋多行內容或單行內容
"""
4.4 多行注釋也可以為函數提供說明文檔
在 Python 中可以通過 help()內置函數或者__doc__屬性查看某個函數的說明文檔,如下代碼所示:
# 查看 print() 內置函數的說明文檔
print('--- 用 help()內置函數查看說明文檔 ---')
help(print)
print('--- 用 __doc__ 屬性查看說明文檔 ---')
print(print.__doc__)
運行結果:
--- 用 help()內置函數查看說明文檔 ---
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
--- 用 __doc__ 屬性查看說明文檔 ---
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
其實,函數的說明文檔,本質就是一段字符串(跟多行注釋符號一致),都需要程序員自己編寫,只不過作為說明文檔,字符串的放置位置不同而已,函數的說明文檔通常位於函數內部、所有代碼的最前面。
如何為函數設置說明文檔呢?如下所示:
# 定義一個比較數字大小的函數
def num_max(num1, num2):
"""
比較兩個數字的大小
:param num1:形參1,數字1
:param num2:形參2,數字2
:return:大的數字,max_num = num1 if num1 > num2 else num2
"""
max_num = num1 if num1 > num2 else num2
return max_num
result = num_max(1, 2)
print(result)
print('--- 用 help() 內置函數查看 num_max() 的說明文檔 ---')
help(num_max)
print('--- 用 __doc__ 屬性查看 num_max() 的說明文檔 ---')
print(num_max.__doc__)
運行結果:
2
--- 用 help() 內置函數查看 num_max() 的說明文檔 ---
Help on function num_max in module __main__:
num_max(num1, num2)
比較兩個數字的大小
:param num1:形參1,數字1
:param num2:形參2,數字2
:return:大的數字,max_num = num1 if num1 > num2 else num2
--- 用 __doc__ 屬性查看 num_max() 的說明文檔 ---
比較兩個數字的大小
:param num1:形參1,數字1
:param num2:形參2,數字2
:return:大的數字,max_num = num1 if num1 > num2 else num2
4.5 多行注釋注意事項
4.5.1 多行注釋不支持嵌套
Python 多行注釋不支持嵌套,如下所示為錯誤寫法:
'''
外層注釋
'''
內層注釋
'''
'''
4.5.2 多行注釋符號'''或"""作為字符串標記
多行注釋符號'''或"""也可以作為字符串的開始和結束標記。
Python 中當多行注釋符號作為字符串的一部分出現時,就不能再將它們當做多行注釋標記,而應該看做是字符串的一部分,如下所示:
str_info1 = '''微信公眾號:碼農阿傑'''
str_info2 = """博客園博客地址 https://www.cnblogs.com/manongajie/"""
str_info3 = "CSDN 博客地址 https://blog.csdn.net/manongajie/"
print(str_info1)
print(str_info2)
print(str_info3)
運行結果:
微信公眾號:碼農阿傑
博客園博客地址 https://www.cnblogs.com/manongajie/
CSDN 博客地址 https://blog.csdn.net/manongajie/
對以上代碼說明:
- Python 沒有將這里的三個引號當做是多行注釋,而是將它們看作字符串的開始和結束標志。
