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

啟動Python 3解釋器:

python

在Windows上啟動的代碼如上,而在Mac或者Linux上,啟動的代碼如下:

$ python3

Python的控制流結構,如for循環、while循環以及 if 語句,都是由以冒號終止的語句引入的,表示其構造的語句體緊隨其后。例如,for循環需要一個循環體,如果你輸入:

>>> for i in range(5):
...

Python會顯示三點的提示,要求你提供循環體。Python的一個獨特的(有時也飽受爭議)方面就是前置的空格是有語法意義的。

這意味著Python使用縮進級別,而不像其他語言使用大括號來劃分代碼塊。根據慣例,同級的Python代碼都以4個空格縮進。

所以當Python顯示三點提示時,我們提供4個空格和一個語句來形成循環體:

...    x = i * 10

循環體中還將包含第二條語句,所以在接下來的三點提示中按回車鍵之后,我們再輸入4個空格,然后調用內置的print()函數:

...    print(x)

要終止代碼塊,那么必須在REPL中輸入一個空行:

...

隨著我們完成代碼塊,Python會執行待處理的代碼,輸出小于50且為10的倍數的數字:

0
10
20
30
40

看一下滿屏的Python代碼,我們可以看到清晰匹配的縮進——實際上必須匹配——程序的結構如圖1.1所示。

..\tu\0101.tif

圖1.1 代碼中的空格

即使我們用灰線替換代碼,程序的結構也很清楚,如圖1.2所示。

..\tu\0102.tif

圖1.2 用灰線替換代碼

以冒號結束的每個語句都會開始一個新行,并引入一個額外的縮進級別,直到取消縮進(dedent)將縮進恢復到上一級為止。每個級別的縮進通常是4個空格,稍后會更詳細地介紹這些規則。

Python使用的這種縮進語法有3大優點。

(1)它迫使開發人員在代碼塊中使用單一級別的縮進。在很多語言中,這通常被認為是好的做法,因為它使代碼更加易讀。

(2)具有縮進語法的代碼不會被不必要的花括號混淆,而你永遠也不會遇到有關代碼標準的爭辯——花括號應該在哪里。你可以很容易地識別Python代碼中的所有代碼塊,并且每個人都以相同的方式編寫代碼。 

(3)縮進語法要求作者、Python運行時系統以及需要讀取代碼的未來維護者必須對代碼的結構給出一致的解釋。因此,你不會遇到有歧義的代碼結構。 

Python縮進的規則看起來很復雜,但在實踐中卻相當簡單。

  • 你可以使用空格(space)或制表符(tab)作為縮進。普遍的共識是,空格比制表符更好,4個空格已經成為Python社區的標準。
  • 一個基本規則就是絕不混用空格和制表符。Python解釋器會“抱怨”,你的同事也會對你“窮追猛打”。 
  • 如果你愿意,你可以在不同的時間使用不同的縮進量。基本規則是相同縮進級別的連續代碼行被認為是相同代碼塊的一部分
  • 這些規則有一些例外,但它們幾乎總是與以其他方式提高代碼的可讀性有關,例如通過將多個語句分解成多行。 

嚴格的代碼格式化方法就是像Guido一樣進行縮進代碼,也許更恰當的說法是像Guido一樣縮進它!重視代碼質量如可讀性已經成為Python文化的核心,接下來我們將探索一下這個問題。

主站蜘蛛池模板: 龙陵县| 平顺县| 巴彦县| 佛坪县| 金秀| 轮台县| 若尔盖县| 大荔县| 灵川县| 应城市| 鄂托克前旗| 奉化市| 股票| 客服| 邵武市| 丰宁| 凌云县| 靖江市| 那坡县| 中宁县| 玉环县| 天等县| 丰台区| 齐齐哈尔市| 昌吉市| 肃南| 亳州市| 扶沟县| 云龙县| 安陆市| 中山市| 会理县| 正宁县| 马公市| 大关县| 兴宁市| 太原市| 襄垣县| 聂荣县| 浏阳市| 桐乡市|