1. 程式人生 > 實用技巧 >流程控制之if ......else

流程控制之if ......else

流程控制

假如把寫程式比做走路,那我們到現在為止,一直走的都是直路,還沒遇到過分叉口,想象現實中,你遇到了分叉口,然後你決定往哪拐必然是有所動機的。你要判斷那條岔路是你真正要走的路,如果我們想讓程式也能處理這樣的判斷怎麼辦? 很簡單,只需要在程式裡預設一些條件判斷語句,滿足哪個條件,就走哪條岔路。這個過程就叫流程控制。

基本上在各個語言中,都是用語法if…else…來實現,可分為單分支、雙分支、多分支

單分支

1 if 條件:
2 滿足條件後要執行的程式碼

雙分支

if 條件:
滿足條件執行程式碼
else:
if條件不滿足就走這段
AgeOfXiaoming 
= 48 if AgeOfXiaoming > 50 : print("Too old, time to retire..") else: print("還能折騰幾年!")

縮排

這裡必須要插入這個縮排的知識點

你會發現,上面的if程式碼裡,每個條件的下一行都縮進了4個空格,這是為什麼呢?這就是Python的一大特色,強制縮排,目的是為了讓程式知道,每段程式碼依賴哪個條件,如果不通過縮排來區分,程式怎麼會知道,當你的條件成立後,去執行哪些程式碼呢?

在其它的語言裡,大多通過{}來確定程式碼塊,比如C,C++,Java,Javascript都是這樣,看一個JavaScript程式碼的例子

var age = 56
if ( age < 50){
console.log("還能折騰")
console.log('可以執行多行程式碼')
}else{
console.log('太老了')
}

在有{}來區分程式碼塊的情況下,縮排的作用就只剩下讓程式碼變的整潔了。

Python是門超級簡潔的語言,發明者定是覺得用{}太醜了,所以索性直接不用它,那怎麼能區分程式碼塊呢?答案就是強制縮排。

Python的縮排有以下幾個原則:

    • 頂級程式碼必須頂行寫,即如果一行程式碼本身不依賴於任何條件,那它必須不能進行任何縮排
    • 同一級別的程式碼,縮排必須一致
    • 官方建議縮排用4個空格,當然你也可以用2個,如果你想被人笑話的話。

多分支

回到流程控制上來,if…else …可以有多個分支條件

 1 if 條件:
 2   滿足條件執行程式碼
 3 elif 條件:
 4   上面的條件不滿足就走這個
 5 elif 條件:
 6   上面的條件不滿足就走這個
 7 elif 條件:
 8   上面的條件不滿足就走這個
 9 else:
10   上面所有的條件不滿足就走這段

寫個猜年齡的遊戲吧

1 age_of_martin = 48
2 guess = int(input(">>:"))
3 if guess > age_of_martin :
4   print("猜的太大了,往小裡試試...")
5 elif guess < age_of_martin :
6   print("猜的太小了,往大里試試...")
7 else:
8   print("恭喜你,猜對了...")

上面的例子,根據你輸入的值不同,會最多得到3種不同的結果