教學是對知識的二次加工。
筆者希望自己對python編程知識的加工處理,能對讀者產生作用。
這次寫些基礎概念,Python語言基本語法元素。
格式框架:注釋、縮進、續行符
先來看看筆者寫的簡單代碼(pycharm環境下)
貨幣兌換1.0:
貨幣兌換3.0中的部分代碼:
對比兩個代碼部分。
注釋
貨幣兌換1.0 圖中,有以三引號引用的綠色部分,類似描述性的信息就是注釋。注釋,會被計算機忽略,你寫代碼的時候,可以通過注釋表明作者和版權資訊,或者解釋代碼原理及用途。
注釋也可以理解為程序編寫者對程序代碼的一種標記,這樣以後翻看代碼,通過標記可以迅速理解代碼。
然後兩個圖都有部分灰色的代碼,以#號為起始,這些#號開始的灰色文字也屬於注釋。這是行內注釋,寫在代碼後面或在空行上。同樣是不被執行的代碼。
縮進
Python有一個很好的格式框架,得益於python通過縮減來劃分語句代碼塊。
一次縮進可以通過4個空格或者Tab鍵來完成。在pycharm中,如果代碼需要縮進時,在你換行後就自動增加縮進了。
貨幣兌換1.0 圖中可執行代碼都是沒有縮進的,即都是從左側開始寫的代碼,代碼前面沒有任何的空格。
同一縮減級別的代碼,都是從上到下執行的。所以貨幣兌換1.0 中就是從上到下執行4行代碼。
重頭戲在貨幣兌換3.0 部分代碼圖,這裡存在縮進。
中間的空行是筆者個人習慣,可以把不同的代碼功能塊稍微分開。
主要看if分支結構裡面的縮進。
上圖我們可以看到沒有縮進的三個關鍵字:if elif else 。這三者都沒有縮進,所以這三者在python語言裡面是同級的。
當然,這裡if elif else是一個結構。
if 條件1成立,執行代碼塊1; elif 條件2成立,執行代碼塊2; else 上述條件均不成立,執行代碼塊3.
其中條件1和條件2 在if 及 elif 代碼那一行。代碼塊1就是if行下一行起的所有縮進部分代碼,如圖if 和elif間的同一縮進的4行代碼,即為代碼塊1。
縮進級別可以分為無縮進,縮進1次,縮進2次……縮進相同的代碼級別相同。有些像郵政地址,中國,廣東省,深圳市……if elif else下的語句塊也是同級的,假如執行的代碼塊1,代碼塊2和代碼塊3就不被執行。
在更複雜的代碼中,代碼塊1裡面也可以存著if結構,if下也有縮進後的代碼塊。
python通過嵌套不同級別的縮進來劃分代碼塊的歸屬。
上圖是筆者另一個代碼,可以看到有三個級別的縮進,無縮進,縮進1次,縮進2次。
其中代碼
i -= 1continue歸屬於if
而代碼
if byte_left[i] == 0:i -= 1 continuebyte_str += str(byte_left[i]) + " " + unit_str[i] + " "i -= 1歸屬於while。
續行符
不知道大家有沒注意到上面的if elif else 結構中有一個特殊的縮進。
在elif中,條件語句被截斷了兩截,還換到下一行了。這裡的\就可以把語句截成兩截,後面的內容換到下一行,換行後的部分會默認異常縮進。
換行不是必要的,換行的作用是方便長代碼在一個頁面裡的完整顯示。
比如一句3米長的代碼,你可以用\把它切成6段,每段大約50釐米,這樣你就有可能在顯示器上一下看到整個代碼,而不用拉滾動條拉半天。