天天看點

Python入門筆記(4)_ 控制流:條件判斷和循環語句

if 條件判斷

書寫格式

score = 9.7
if score > 9.0 :
    print 'Excellent.'
    print 'Make persistent efforts.'
elif score >8.0 :
    print 'Good'
else :
    print 'Passed, but you can be better next time'
           

注意: Python代碼的縮進規則。具有相同縮進的代碼被視為代碼塊,也就是說,'Excellent' 和 'Make persistent efforts.' 會同時出現。如果 if 語句判斷為 True,就會執行這個代碼塊。

縮進請嚴格按照Python的習慣寫法:4個空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因為縮進引起的文法錯誤。

注意: if 語句後接表達式,然後用 : 表示代碼塊開始。elif,else 後面一樣要加 :。

特别注意: 這一系列條件判斷會從上到下依次判斷,如果某個判斷為 True,執行完對應的代碼塊,後面的條件判斷就直接忽略,不再執行了。

for 循環

書寫格式

我們先寫一段計算平均值的代碼。按照以往 C 或者 MATLAB 的習慣,一般會這樣寫

score = [9.8, 9.3, 9.4, 9.5]
sum = 0.0
for s in range[0, len(score)] :
    sum = sum + score[s]
print sum/len(score)
           

這裡 len()用來計算序列長度。

 range() 用來生成序列,但要格外注意的是其範圍,

>>> r = range[1,5]

>>> print r

[1,2,3,4]

它的範圍是最後一位數減 1 。range 的其它用法我們在後面的小結裡會講到。

按照一貫的思路,通路score 時總要用 score[i]。

但在 for 語句以及其它控制流語句裡,可以這也寫:

score = [9.8, 9.3, 9.4, 9.5]
sum = 0.0
for s in score :
    sum = sum + s
print sum/len(score)
           

同樣,要注意 :

while 循環

sum = 0
x = 1
while x <101 :
    if x%2 :
        sum = sum + x
    x = x + 1
print sum
           

這裡我們計算了100以内偶整數和。

while 比較直覺,不多介紹。其注意的地方是退出的條件。比如,可以用到 break。

break 退出循環

同樣寫上面的代碼

sum = 0
x = 1
while True :
    if x%2 :
        sum = sum + x
    x = x + 1
    if x > 101 :
        break
print sum
           

這裡用break跳出了循環。

continue 繼續循環

還是寫上面程式

sum = 0
for x in range(1,101) :
    if not x%2 :
        continue
    sum = sum + x
           

這裡,如果 x 為奇數,則 繼續循環 而不進行下面的 sum = sum + x 的語句。

循環嵌套

這裡我們寫一個程式實作下面功能,

輸出100以内,十位數大于個位數的整數。

for x in range(0,10) :
    for y in range(1,10) :
        if y > x :
            print y*10 + x