1. 程式人生 > >流程控制之if

流程控制之if

發現 var 簡潔 作用 問題 條件 ng- java 分叉

流程控制

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

if...else 語句

單分支 (3-5分鐘)

if 條件:
    滿足條件後要執行的代碼

技術分享圖片

雙分支(3分鐘)

if 條件:
    滿足條件執行代碼
else:
    if條件不滿足就走這段
AgeOfOldboy = 48

if AgeOfOldboy > 50 :
    print("Too old, time to retire..")
else:
    print("還能折騰幾年!")

縮進(5分鐘)

這裏必須要插入這個縮進的知識點

你會發現,上面的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個,如果你想被人笑話的話。

多分支(15-20分鐘)

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

if 條件:
    滿足條件執行代碼
elif 條件:
    上面的條件不滿足就走這個
elif 條件:
    上面的條件不滿足就走這個
elif 條件:
    上面的條件不滿足就走這個    
else:
    上面所有的條件不滿足就走這段

寫個猜年齡的遊戲吧

age_of_oldboy = 48

guess = int(input(">>:"))

if guess > age_of_oldboy :
    print("猜的太大了,往小裏試試...")

elif guess < age_of_oldboy :
    print("猜的太小了,往大裏試試...")

else:
    print("恭喜你,猜對了...")

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

此時讓學生自己也默寫一遍這段代碼

再來個匹配成績的小程序吧,成績有ABCDE5個等級,與分數的對應關系如下

A    90-100
B    80-89
C    60-79
D    40-59
E    0-39

要求用戶輸入0-100的數字後,你能正確打印他的對應成績

score = int(input("輸入分數:"))

if score > 100:
    print("我擦,最高分才100...")
elif score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 60:
    print("C")
elif score >= 40:
    print("D")
else:
    print("太笨了...E")

這裏有個問題,就是當我輸入95的時候 ,它打印的結果是A,但是95 明明也大於第二個條件elif score >=80:呀, 為什麽不打印B呢?這是因為代碼是從上到下依次判斷,只要滿足一個,就不會再往下走啦,這一點一定要清楚呀!

流程控制之if