作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!
python最具特色的就是用縮排來寫模組。我們下面以if選擇結構來舉例。
先看C語言的表達方式(注意,這是C,不是Python!)
if ( i > 0 ){ x = 1; y = 2;}
這個語句是說,如果i>1的話,我們將進行括弧中所包括的兩個賦值操作。
括弧中包含的就是塊操作,它表明了其中的語句隸屬於 if
在python中,同樣的目的,這段話是這樣的
if i > 0: x = 1 y = 2
在python中, 去除了i > 0周圍的括弧,去除了每個語句句尾的分號,還去除了表示塊的花括弧。
多出來了if ...之後的:(冒號), 還有就是x = 1 和 y =2前面有四個空格的縮排。通過這些縮排,python可以識別這兩個語句是隸屬於if的。
(python這樣設計的理由是:程式會看起來很好看)
我們寫一個完整的程式,命名為ifDemo.py
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之外,不會跳過,繼續執行。
這種以四個空格的縮排來表示隸屬關係的書寫方式,我們以後還會經常看到。Python很強調程式的可讀性,這種強制的縮排要求實際上是在幫程式員寫出整潔的程式。
複雜一些的選擇的例子:
i = 1if i > 0:
print 'positive i' i = i + 1elif i == 0:
print 'i is 0' i = i * 10else:
print 'negative i' i = i - 1print 'new i:',i
這裡有三個塊,分別以if, elif, else引領。
python順序檢測所跟隨的條件,如果發現為假,那麼跳過後面緊跟的塊,檢測下一個條件; 如果發現為真,那麼執行後面緊跟的塊,跳過剩下的塊
(else等同於elif True)
整個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語句之後的冒號
以四個空格的縮排來表示隸屬關係, python中不能隨意縮排
if <條件1>:
statement
elif <條件2>:
statement
elif <條件3>:
statement
else:
statement