縮排
Python最具特色的是用縮排來標明成塊的程式碼。我下面以if選擇結構來舉例。 if後面跟隨條件,如果條件成立,則執行歸屬於if的一個程式碼塊。
先看C語言的表達方式(注意, 這是C,不是Python!)
if ( i > 0 ) { x = 1; y = 2; }
如果i > 0的話,我們將進行括號中所包括的兩個賦值操作。 括號中包含的就是塊操作,它隸屬於if。
在Python中,同樣的目的,這段話是這樣的
if i > 0: x = 1 y = 2
在Python中, 去掉了i > 0周圍的括號,去除了每個語句句尾的分號,表示塊的花括號也消失了。
多出來了 if ...之後的 :(冒號), 還有就是x = 1 和 y =2前面有 四個空格的縮排。透過縮排,Python識別出這兩個語句是隸屬於if。
Python這樣設計的理由純粹是為了程式好看。
if語句
寫一個完整的程式,命名為ifDemo.py。這個程式用於實現if結構。
i = 1x = 1if i > 0: x = x+1print x
$python ifDemo.py # 執行
程式執行到if的時候,條件為True,因此執行 x = x+1,。
print x語句沒有縮排,那麼就是if之外。
如果將第一句改成i = -1,那麼if遇到假值 (False), x = x+1隸屬於if, 這一句跳過。 print x沒有縮排,是if之外,不跳過,繼續執行。
這種以 四個空格的縮排來表示 隸屬關係的書寫方式,以後還會看到。強制縮排增強了程式的 可讀性。
複雜一些的if選擇:
i = 1
if i >
0:
print 'positive i'
i = i + 1
elif i ==
0:
print 'i is 0'
i = i * 10
else
:
print 'negative i'
i = i - 1
print 'new i:',i
這裡有三個塊,分別屬於
if, elif, else引領。
Python檢測條件,如果發現if的條件為假,那麼跳過後面緊跟的塊,檢測下一個elif的條件; 如果還是假,那麼執行else塊。
透過上面的結構將程式分出三個分支。程式根據條件,只執行三個分支中的一個。
整個if可以放在另一個if語句中,也就是if結構的巢狀使用:
i = 5if i > 1: print 'i bigger than 1' print 'good' if i > 2: print 'i bigger than 2' print 'even better'
if i > 2 後面的塊相對於該if縮排了四個空格,以表明其隸屬於該if,而不是外層的if。
總結
if語句之後的冒號
以四個空格的縮排來表示隸屬關係, Python中不能隨意縮排
if <條件1>:
statement
elif <條件2>:
statement
elif <條件3>:
statement
else:
statement