2020年10月28日星期三

009 與小卡特一起學 Python 第 9 章 全都為了你——注釋

 申明本站飛宇網 https://feiyetopro.blogspot.com/自網路收集整理之書籍文章影音僅供預覽交流學習研究,其[書籍、文章、影音]情節內容, 評論屬其個人行為, 與本網站無關。版權歸原作者和出版社所有,請在下載 24 小時內刪除,不得用作商業用途;如果您喜歡其作品,請支持訂閱購買[正版]謝謝!


9 章 全都為了你——注釋

到現在為止,我們在程式(以及交互模式)中鍵入的所有一切都是交給電腦的指令。不過,還可以在程式中為你自己加入一些說明,描述這個程式做什麼,怎麼做,這是一個很好的想法。這樣能夠幫助你(或者其他人)以後查看程式,瞭解原先你想做什麼。

在電腦程式中,這些說明就稱為注釋(comment)。

 

9.1 增加注釋

注釋是給你看的,而不是讓電腦執行的。注釋是程式文檔的一部分,電腦運行程式時會忽略這些注釋。


Python 中向程式增加注釋有兩種方法。

術語箱

文檔(documentation)就是關於一個程式的資訊,描述了程式並說明它是如何工作的。注釋是程式文檔的一部分,不過在代碼本身以外,文檔還包括其他部分,文檔描述以下內容:

·          為什麼寫這個程式(它的用途)

·          這個程式是誰寫的

·          這個程式面向什麼人(它的用戶)

·          如何組織

更大、更複雜的程式往往有更多文檔。

6 章中提到的 Python 幫助就是一種文檔。它的作用是幫助用戶瞭解 Python 如何工作。

 

9.2 單行注釋

在任何代碼行前面加上“#”符號就可以把它變成一個注釋。(這個符號叫做數位記號,有時也叫做鎊符號。)

# 這是Python 程式中的一個注釋

print 'This is not a comment'

 

如果運行這兩行代碼,會得到下面的輸出:

This is not a comment

 

程式運行時第一行會被忽略。注釋(以 # 字元開頭的代碼行)只是用來方便你和其他人讀懂代碼的。

 

9.3 行末注釋

還可以在一行代碼的最後加注釋,像下面這樣:

area = length * width # 計算矩形的面積

 

注釋從 # 字元開始。# 之前的所有內容都是正常的代碼行,在它後面的所有內容則是注釋。

 

9.4 多行注釋

有時你可能想使用多行注釋。可以使用多行,每行前面都有一個 # 字元,像下面這樣:

# ***************

# 這個程式用來說明Python 中如何使用注釋

# 星號所在的行只為將注釋

# 與其餘代碼清楚地區分開

# ***************

 

多行注釋可以很好地突出程式碼片段,使你讀代碼時能清楚地區分不同程式碼片段。可以用多行注釋來描述一段代碼要做什麼。程式最開始的多行注釋可以列出作者的名字、程式名、編寫或更新的日期,以及你認為可能有用的任何其他資訊。

三重引號字串

Python 中還有一種方法可以相當於多行注釋。只需建立一個沒有名字的三重引號字串。還記得在第 2 章中曾經說過,三重引號字串是一個可以跨多行的字串。所以可以這樣寫:

""" 這是一個包括多行的注釋,

使用了三重引號字串。

這不完全是注釋,不過也可以

相當於注釋。

"""

 

因為這個字串沒有名字,而且程式對這個字串不任何處理,所以它對程式的運行沒有任何影響。它相當於一個注釋,儘管從嚴格的 Python 術語來講這並不是一個真正的注釋。

像(Python)程式師一樣思考

有些 Python 程式師認為不應該使用三重引號字串(多行字串)作為注釋。就我個人來說,我看不出這有什麼充分的理由。加注釋的目的就是讓你的代碼更易讀、更容易理解。如果你覺得三重引號字串很方便,可能會更願意在代碼中加入注釋,這畢竟是件好事。

如果在 IDLE 編輯器鍵入一些注釋,可以看到注釋會用不同的顏色顯示。這是為了幫助你更容易地讀代碼。

大多數代碼編輯器允許你改變注釋的顏色(或者可以改變代碼其他部分的顏色)。IDLE 中注釋的默認顏色是紅色。因為三重引號字串不是真正的 Python 注釋,它們的顏色會不同。在 IDLE 中三重引號字串是綠色,因為綠色是 IDLE 中字串的預設顏色。

 

9.5 注釋風格

現在你已經知道了如何加注釋。但是應該向注釋裡放什麼內容呢?因為它們並不影響程式如何運行,我們說注釋只是一個風格問題。這說明,可以在注釋中放你想放的任何東西(也可以根本不使用注釋)。不過這並不表示注釋不重要。大多數程式師都是費了一番周折才領悟到這一點。他們回頭看幾年前、幾個月前或者是幾個星期前,甚至只是昨天才寫的程式時,可能完全看不明白,這往往因為他們沒有加入足夠的注釋來解釋程式是如何工作的。此時他們就會深深體會到注釋的重要性!儘管寫程式時很明白,但是等以後再看程式時,很可能對原先的想法一頭霧水。

至於應該在注釋中放什麼內容並沒有嚴格的規定,不過建議你盡可能增加注釋。現在看來,注釋越多越好。寧可過於謹慎注釋過多,也比注釋過少要好。積累更多的程式設計經驗後,你就會慢慢瞭解加多少注釋以及加哪種注釋最適合了。


本書中的注釋

在你手上的這本書中,你可能看不到代碼清單中有多少注釋。這是因為這本書使用了注解,也就是代碼旁邊的說明。不過如果查看 \examples 資料夾中或者網站上的代碼清單,你會看到所有代碼中都有注釋。


 9.6 注釋掉

還可以使用注釋臨時跳過程式中的某些部分。作為注釋的所有內容都會被忽略。

#print "Hello"

print "World"

 

>>> =============== RESTART ================

>>> 

World

>>> 

 

由於 print "Hello" 被注釋掉,所以這一行不會執行,不會列印“Hello”

偵錯工具時,如果只希望某些部分運行而將另外的部分忽略,這會很有用。如果你希望電腦忽略某些代碼行,只需要在那些代碼行前面加一個 #,或者在這段代碼前後加上三重引號。

大多數代碼編輯器(包括 IDLE)都有一個特性,允許你很快地注釋整個代碼塊(也能很快地取消注釋)。要做到這一點,在 IDLE 的編輯器中要看 Format 功能表。

你學到了什麼

在這一章,你學到了以下內容。

·    注釋只是為了方便你(和其他人),而不是用來説明電腦。

·    注釋還可以用來隔離部分代碼,不讓它們運行。

·    可以使用三重引號字串作為一種跨多行的注釋。

測試題

由於注釋相當簡單,所以我們可以休息一下,這一章沒有測驗題。

動手試一試

再來看第 3 動手試一試中的溫度轉換程式,增加一些注釋。重新運行程式,看看運行結果是不是還一樣。

 

 

 

0 留言:

發佈留言