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 = 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 之外,不跳過,繼續執行。
這種以四個空格的縮排來表示隸屬關係的書寫方式,以後還會看到。強制縮排增強了程式的可讀性。
複雜一些的 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
作者:Vamei 出處:http://www.cnblogs.com/vamei