9-12條件判讀
9、單分支結(jié)構(gòu) if 語句
一個(gè) if 語句包含有五個(gè)要素:
① 關(guān)鍵詞"if";
② "條件";
③ 英文冒號(hào)":";
④ 縮進(jìn);
⑤ 代碼塊
第一個(gè)注意點(diǎn)是關(guān)鍵詞 if 后有個(gè)空格,
第二個(gè)注意點(diǎn)是條件后面的冒號(hào)必須是英文冒號(hào),
第三個(gè)注意點(diǎn)是縮進(jìn),
一個(gè)縮進(jìn)是四個(gè)空格或一個(gè) Tab 鍵,
代碼塊前一定要加縮進(jìn),
第四個(gè)注意點(diǎn)是代碼塊,
它的意思是一組代碼內(nèi)容。
【代碼練習(xí)】
【代碼練習(xí)】
"如果 Python 技能達(dá)到 90 分以上就寫進(jìn)簡(jiǎn)歷,
否則暫不能寫進(jìn)簡(jiǎn)歷中"。
使用 if...else... 語句,【如果…就…;否則就….】.
第一行,input() 獲取終端輸入的值,
由于數(shù)據(jù)類型是字符串,
需要通過 int() 轉(zhuǎn)換為整數(shù)。
先將 input() 輸入的數(shù)據(jù)轉(zhuǎn)換完數(shù)據(jù)類型,
后再賦給變量 point;
第二行,if 的條件是 "point>= 90",
如果 point 的值大于或等于 90 ,
就會(huì)執(zhí)行 if 語句的代碼塊,
即第 3 行的打印語句;
如果 point 的值不滿足 if 語句的條件,
程序就會(huì)選擇 else 語句的代碼塊,
即執(zhí)行第 5 行的打印語句;
這里 else 語句實(shí)現(xiàn)的是
【如果…就…;否則…】中【否則…】的功能。
else 語句在語法上需要
① 關(guān)鍵詞"else";
② 英文冒號(hào)":";
③ 縮進(jìn);
④ 代碼塊。
上方相同縮進(jìn)的其他條件判斷語句都不符合時(shí),
才會(huì)執(zhí)行 else 語句,
所以 else 語句是不需要寫條件的,
且在一個(gè)條件判斷語句內(nèi),
需要與有相同縮進(jìn)的 if 語句連用。
【課堂練習(xí)】
1)提示一:先獲取輸入的年齡值,并存在變量 age 里;
2)提示二:接著進(jìn)行判斷:
如果年齡大于 22,就打印"猜錯(cuò)了哦",
否則就打印"猜對(duì)啦";
如果報(bào)錯(cuò),可能的原因是:
1)if 語句后要跟條件和"英文冒號(hào):";
2)else 語句后只需跟"英文冒號(hào):"
3)檢查"縮進(jìn)";
4)輸入括號(hào)時(shí)要切換至英文輸入法。
10、多分支結(jié)構(gòu) if...elif...else... 語句
條件判斷語句里除了 if 和 else 語句外,
還有一個(gè) elif 語句,是 else if 的縮寫。
必須與 if 連用,
實(shí)現(xiàn)分支判斷【如果… 就…;如果… 就…】;
第 1 行,input() 得到的是一個(gè)字符串,
通過 int() 轉(zhuǎn)換數(shù)據(jù)類型后,再賦值給變量point;
第 2 行,if 語句的條件是 "point >= 90",
即如果 point 的值大于或等于 90 的時(shí)候,
就執(zhí)行第 3 行的打印語句;
如果輸入的數(shù)據(jù)不滿足 if 語句的條件,
程序就會(huì)跑到第 4 行與 elif 語句的條件進(jìn)行判斷,
如果 point 的值大于等于 60,
執(zhí)行第 5 行的打印語句。
elif 語句的語法格式跟 if 語句類似,
只需要將關(guān)鍵詞換為 elif。
但有個(gè)地方要注意的是,
elif 語句需要與同縮進(jìn)的 if 語句對(duì)齊連用,
不能單獨(dú)使用。
- 條件判斷嵌套
如圖所示,
我們要用條件判斷語句來實(shí)現(xiàn)這個(gè)功能,
第一步需要判斷我們?cè)诮K端獲取的技能名是什么,
如技能名為 Python 或吉他。
再進(jìn)一步判斷這項(xiàng)技能的分?jǐn)?shù)是否滿足寫進(jìn)簡(jiǎn)歷的標(biāo)準(zhǔn)。
這種在外層條件滿足的前提下,
再增加額外的判斷的過程,
就是條件判斷嵌套。
如果我們輸入"Python",
再輸入60,程序最后會(huì)打印出來什么?
11.1 條件判斷嵌套的執(zhí)行流程
首先,我們可以把原代碼進(jìn)行概括,來看下圖:
這里代碼塊①②的四條語句
相對(duì)于外層條件判斷語句有同樣的縮進(jìn),
所以他們是一個(gè)代碼塊。
而這里的代碼塊①②的內(nèi)容剛好是條件判斷語句,
我們可以先不看代碼塊內(nèi)的這些條件判斷語句。
先看外層的條件判斷語句。
我們輸入 "Python" 賦給變量 skill ,
再輸入 60 賦給變量 score 后,
程序會(huì)在外層的條件判斷語句進(jìn)行判斷,
剛好滿足 if 語句的條件 skill =='Python',
程序?qū)淼酱a塊 ① 內(nèi)。
進(jìn)入代碼塊 ① 內(nèi),
我們可以看到是一個(gè) if 語句,
此時(shí)它的條件是用 score 與 90 做比較。
而我們上方對(duì) score 賦的值為 60,
不符合 if 語句的條件,
所以程序執(zhí)行 else 語句下的打印語句,
最終打印出"Python 暫不可以寫入簡(jiǎn)歷"。
現(xiàn)在可以理解條件判斷嵌套的執(zhí)行流程了嘛?
其實(shí)不難,只要我們先把代碼塊的內(nèi)容看做一個(gè)整體,
先從外層下手,再一步步往內(nèi)層走就行了。
11.2 條件判斷嵌套的寫法
條件判斷嵌套該怎么寫呢?
我們還是拿上面的案例來分析,
跟執(zhí)行流程一樣,
我們依舊先把代碼概括成下面的形式。
條件判斷嵌套的寫法先從外層的條件判斷語句下手,
代碼塊可以先只寫簡(jiǎn)單的打印語句。
比如我們先預(yù)設(shè)外層 if 語句的條件符合時(shí),
打印"不可以寫進(jìn)簡(jiǎn)歷";
elif 語句的條件符合時(shí),打印"可以寫進(jìn)簡(jiǎn)歷"。
這時(shí)我們?cè)賹⒋a塊的邏輯修改成我們想要的邏輯,
如 Python 寫進(jìn)簡(jiǎn)歷,
需要分?jǐn)?shù)達(dá)到 90 分以上,否則不能寫進(jìn)簡(jiǎn)歷。
那么我們可以將 skill == 'Python' 條件下的打印語句替換為條件判斷語句。
試著自己完成吉他部分的代碼吧。
12、【實(shí)操練習(xí)】:條件判斷
1、計(jì)算員工年休假天數(shù)
小林是閃光科技的一名 HR,
每當(dāng)有新員工入職,
總會(huì)被問到年休假如何計(jì)算。
不僅要詢問他們的累計(jì)工作年限,
還要查詢《職工帶薪年休假條例》才能知道年休假天數(shù),
有沒有更加便捷的方法呢?
題目要求
請(qǐng)你編寫一段代碼,
新入職員工輸入自己的累計(jì)工作年限
(1 年以下填寫 0,1 年及以上取整數(shù)) ,
即可得到自己的年休假天數(shù)。
《職工帶薪年休假條例》規(guī)定:
員工累計(jì)工作滿 1 年不滿 10 年的,年休假 5 天;
已滿 10 年不滿 20 年的,年休假 10 天;
已滿 20 年的,年休假 15 天。
此外,員工累計(jì)工作不滿 1 年,沒有年休假。
2、判斷高中生體質(zhì)情況
高中生體測(cè)時(shí),身高、體重是必測(cè)項(xiàng)目。
根據(jù)這兩個(gè)數(shù)值求得的 BMI 指數(shù),
可以衡量一個(gè)人的胖瘦程度。
其中,男生和女生的 BMI 指數(shù)有不同的劃分范圍,詳見下圖。
小貼士:
17.3 - 23.9 的范圍可以理解為 17.3 <= BMI < 23.9。
題目要求
請(qǐng)你編寫一段代碼,
輸入學(xué)生的性別、身高、體重,
即可得到其體質(zhì)情況(偏瘦、正常、超重、肥胖)。
給你一點(diǎn)點(diǎn)提示:
1)變量名建議:
性別——gender,
身高——height,
體重——weight,
BMI 指數(shù)——bmi;
-
結(jié)構(gòu)
+關(guān)注
關(guān)注
1文章
117瀏覽量
21656 -
關(guān)鍵詞
+關(guān)注
關(guān)注
0文章
16瀏覽量
9842 -
IF
+關(guān)注
關(guān)注
1文章
50瀏覽量
26910
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論