Python基礎 - 縮排和選擇

pythontab發表於2014-02-18

縮排

Python最具特色的就是用縮排來寫模組。我們下面以if選擇結構來舉例。if後面跟隨條件,如果條件成立,則執行歸屬於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這樣設計的理由很簡單,就是為了程式好看。

 

if語句

我們寫一個完整的程式,命名為ifDemo.py。這個程式用於實現if結構。

i = 1

x = 1

if i > 0:

    x = x+1

print x

$python ifDemo.py  # 執行

程式執行到if的時候,條件為True,因此執行x = x+1,。

print x語句沒有縮排,那麼就是if之外。

 

如果將第一句改成i = -1,那麼if遇到假值 (False), x = x+1隸屬於if, 這一句跳過。 print x沒有縮排,是if之外,不跳過,繼續執行。

 

這種以四個空格的縮排來表示隸屬關係的書寫方式,我們以後還會看到。Python很強調程式的可讀性。強制縮排的要求讓程式設計師寫出整潔的程式。

 

複雜一些的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  = 5

if 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


相關文章