官术网_书友最值得收藏!

1.2.3 語法規則

1-4 語法規則

1.Python標識符

在Python語言中,變量名、函數名、對象名等都是通過標識符來命名的。標識符第一個字符必須是英文字母或下畫線“_”,標識符的其他部分由字母、數字和下畫線組成。Python中的標識符是區分大小寫的。在Python 3.x中,非ASCII標識符也是允許的,例如:data_人數=100中的“data_人數”為含漢字的標識符。

標識符的命名規則解釋如下。

1)標識符是由字符(A~Z和a~z)、下畫線和數字組成的,但第一個字符不能是數字。

2)標識符不能和Python中的保留字相同。

保留字即關鍵字,保留字不能用作常量或變量,也不能用作任何其他標識符名稱。

Python的標準庫提供了一個keyword module,可以輸出當前版本的所有關鍵字:

所有的保留字,如表1-1所示。

表1-1 Python保留字一覽表

由于Python是嚴格區分大小寫的,保留字也不例外。所以,if是保留字,但IF就不是保留字。在實際開發中,如果使用Python中的保留字作為標識符,則解釋器會提示“invalid syntax”的錯誤信息,圖1-19所示就是將保留字if當變量而報錯。

圖1-19 保留字if當作變量

3)標識符中不能包含空格、@、%以及 $ 等特殊字符。

例如,下面所列舉的標識符是合法的:

但以下命名的標識符不合法:

4)標識符中的字母是嚴格區分大小寫的,即使兩個同樣的單詞,如果大小寫不一樣,其代表的意義也是完全不同的。

例如,下面這3個變量就是毫無關系的,它們是相互獨立的個體。

5)以下畫線開頭的標識符有特殊含義,例如:

以單下畫線開頭的標識符(如_width),表示不能直接訪問的類屬性,其無法通過from…import* 的方式導入。

以雙下畫線開頭的標識符(如__add)表示類的私有成員。

以雙下畫線開頭和結尾的標識符(如__init__),是專用標識符。

因此,除非特定場景需要,應避免使用以下畫線開頭的標識符。

2.縮進和冒號

和許多程序設計語言(如Java、C語言)采用大括號“{}”分隔代碼塊不同,Python采用代碼縮進和冒號(:)來區分代碼塊之間的層次。對于類定義、函數定義、流程控制語句、異常處理語句等,行尾的冒號和下一行的縮進,表示下一個代碼塊的開始,而縮進的結束則表示此代碼塊的結束。

Python中可以使用空格或者Tab鍵實現代碼的縮進。但無論是手動敲空格,還是使用Tab鍵,通常情況下都是采用4個空格長度作為一個縮進量,因為在默認情況下一個Tab鍵就表示4個空格。

【例1-2】 體會代碼塊的縮進規則。

運算結果:

Python對代碼的縮進要求非常嚴格,同一個級別代碼塊的縮進量必須一樣,否則解釋器會報SyntaxError語法錯誤。

例如,對上面代碼做錯誤改動,如圖1-20所示,將位于同一作用域中的兩行代碼,它們的縮進量分別設置為4個空格和3個空格,可以看到,當手動修改了各自的縮進量后,會導致SyntaxError異常錯誤。

圖1-20 縮進規則不符導致的SyntaxError語法錯誤

在IDLE開發環境中,默認是以4個空格作為代碼的基本縮進單位。不過,這個值是可以手動改變的,在圖1-21所示的菜單欄中選擇“Options → Configure IDLE”命令,會彈出圖1-22所示的縮進規則對話框。

圖1-21 菜單欄

圖1-22 縮進規則對話框

如圖1-23所示,通過拖動滑塊,即可改變默認的代碼縮進量,如拖動至2,則當使用Tab鍵設置代碼縮進量時,會發現按一次Tab鍵,代碼縮進2個空格的長度。不僅如此,在使用IDLE開發環境編寫Python代碼時,如果想設置多行代碼的縮進量,可以使用Ctrl+]和Ctrl+[快捷鍵,此快捷鍵可以使所選多行代碼快速縮進(或反縮進)。

圖1-23 改變默認的代碼縮進量

3.Python引號

Python接收單引號(')、雙引號(")、三引號(""")來表示字符串,引號的開始與結束必須是相同種類的引號。其中兩個三引號之間可以由多行文本組成,是編寫多行文本的快捷語法。

三引號常用于文檔字符串,在文件的特定位置,被當作注釋,具體見以下注釋。

4.Python注釋

注釋(Comments)是用來向用戶提示或解釋某些代碼的作用和功能,它可以出現在代碼中的任何位置。Python解釋器在執行代碼時會忽略注釋,不做任何處理,就好像它不存在一樣。

注釋的最大作用是提高程序的可讀性,還可以用來臨時移除無用的代碼。在一般情況下,合理的代碼注釋應該占源代碼的1/3左右。

Python支持兩種類型的注釋,分別是單行注釋和多行注釋。

(1)單行注釋

Python使用井號(#)作為單行注釋的符號,語法格式為:

從#標注開始,直到這行結束為止的所有內容都是注釋。

【例1-3】 說明多行代碼的功能時一般將注釋放在代碼的上一行。

運算結果:

【例1-4】 說明單行代碼的功能時一般將注釋放在代碼的右側。

運算結果:

(2)多行注釋

多行注釋指的是一次性注釋程序中多行的內容(包含一行)。Python使用3個連續的單引號'''或者三個連續的雙引號"""注釋多行內容。

無論是多行注釋還是單行注釋,當注釋符作為字符串的一部分出現時,就不能再將它們視為注釋標記,而應該看作正常代碼的一部分。

【例1-5】 注釋符作為字符串的一部分。

運算結果:

例中,第1行和第2行代碼,Python沒有將這里的3個引號看作是多行注釋符,而是將它們看作字符串的開始和結束標志;對于第3行代碼,Python也沒有將#看作單行注釋符,而是將它看作字符串的一部分。

主站蜘蛛池模板: 河西区| 若尔盖县| 芜湖县| 雅江县| 怀宁县| 罗山县| 炉霍县| 芷江| 芮城县| 壶关县| 临安市| 中牟县| 沾益县| 屏东县| 宜昌市| 澎湖县| 永丰县| 九龙城区| 伊金霍洛旗| 瑞丽市| 西畴县| 洛川县| 星座| 错那县| 永平县| 扎鲁特旗| 拜城县| 诸暨市| 榕江县| 安康市| 吉隆县| 马龙县| 增城市| 任丘市| 曲松县| 离岛区| 荥阳市| 文山县| 奉贤区| 托克逊县| 澄江县|