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