1. if...elif...elif...else語句
對于一個問題處于多種選擇的狀態(tài)下,也可以理解為判斷條件有多個值的時候,if...else就不能滿足我們的需求,這時候我們就要借用elif來解決問題。
elif是等同于else+if,它的使用可以幫助我們簡化代碼,不至于是使用過多的if...else語句。它的形式為:
if 表達式1: 條件語句1 elif 表達式2: 條件語句2 elif 表達式3: 條件語句3 else: 條件語句4
我們看一下它的執(zhí)行流程圖。
這種形式就是當?shù)谝环N情況不滿足的時候會進行第二種情況的判斷,如果仍然不滿足會進行第三種情況的判斷,如果還不滿足就直接False處理。
我們來通過一個問題來分析:
我們在旅游的時候總是離不開交通工具的選擇。
1)我們可以首先進行判斷高鐵是否可以到達,如果滿足就可以直接選擇乘坐高鐵。
2)如果不滿足上條件可以判斷是否可以乘坐火車到達,如果滿足就可以選擇乘坐火車。
3)如果不滿足上條件可以判斷是否可以乘坐飛機到達,如果滿足就可以選擇乘坐飛機,如果不能到達我們可以最后放棄出行或者更換旅游地點。
4)可以通過這個實例對應上流程圖理解一下。
下面我們通過另外一個實例來再次學習:
關于體質(zhì)指標如下:
體質(zhì)指數(shù)(BMI)=體重(kg)÷身高*身高(m) 成人的BMI數(shù)值: 過輕:低于18.5 正常:18.5-23.9 過重:24-27 肥胖:28-32 嚴重肥胖, 高于32
我們可以通過一個人的體重和身高來判斷他的體質(zhì)指數(shù)是否合格。
代碼如下:
height = float(input('Height(m):'))#輸入身高 weight = float(input('Weight(kg):'))#輸入體重 BMI = (weight) / ((height) ** 2)#BMI計算公式 if BMI < 18.5: print('過輕') elif BMI <= 25: print('正常') elif BMI <= 28: print('過重') elif BMI <= 32: print('肥胖') else: print('嚴重肥胖')
通過這個問題想必大家已經(jīng)理解了elif的用法,在我們要分類討論一個問題的時候使用這種方式可以更清晰的分析理解。
2. if語句的嵌套
關于if語句的嵌套,就是指滿足一個if語句之后,在它的條件語句里再進行一個if語句的判斷,這種形式的嵌套形式在篩選數(shù)據(jù)或者條件過濾的時候常用到。
它的形式為:
if 表達式1: if 表達式2: if 表達式3: 條件語句3 條件語句2 條件語句1 else: 條件語句4
它對應的流程圖:
不知道大家有沒有試過使用程序去判斷一個年份是不是閏年,下面我們來通過這樣一個問題來了解一下if語句的嵌套。
代碼如下:
year = int(input("輸入一個年份: ")) if (year % 4) == 0: if (year % 100) == 0: if (year % 400) == 0: print(year,"是閏年") # 是整百年但能被400整除的 else: print(year,"不是閏年") else: print(year, "是閏年") # 不是整百年但能被4整除的 else: print(year,"不是閏年")
輸出結(jié)構:
輸入一個年份: 2000 2000 是閏年 輸入一個年份: 1999 1999 不是閏年
這個問題的解決就是通過條件語句的嵌套來篩選得到答案,具體看一下嵌套形式以及縮進格式。當年份滿足能整除4這一條件的時候可以進行第一次篩選,當年份能被4整除的同時還能被100整除的時候可以進行第二次篩選,當年份既能被4整除也能被100整除還能被400整除的時候進行第三次篩選,從而得到最終的判斷。
3. 推薦習題
1002 | [編程入門]三個數(shù)最大值 |
1005 | [編程入門]溫度轉(zhuǎn)換 |
1007 | [編程入門]分段函數(shù)求值 |
1008 | [編程入門]成績評定 |
1010 | [編程入門]利潤計算 |
1480 | 模擬計算器 |
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程