Python程序設(shè)計(jì)基礎(chǔ)(微課版)-教案 第5周 程序控制結(jié)構(gòu)_第1頁
Python程序設(shè)計(jì)基礎(chǔ)(微課版)-教案 第5周 程序控制結(jié)構(gòu)_第2頁
Python程序設(shè)計(jì)基礎(chǔ)(微課版)-教案 第5周 程序控制結(jié)構(gòu)_第3頁
Python程序設(shè)計(jì)基礎(chǔ)(微課版)-教案 第5周 程序控制結(jié)構(gòu)_第4頁
Python程序設(shè)計(jì)基礎(chǔ)(微課版)-教案 第5周 程序控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第五周:理論課5(2課時(shí)/90分鐘)一、授課基本信息授課章節(jié)第4章程序控制結(jié)構(gòu)(4.1選擇結(jié)構(gòu):?jiǎn)畏种?、雙分支、多分支、選擇嵌套、程序舉例)授課時(shí)長(zhǎng)2課時(shí)(90分鐘)授課對(duì)象計(jì)算機(jī)類相關(guān)專業(yè)本科一年級(jí)(已掌握變量賦值、運(yùn)算符、input/print格式化輸出,參考第2、3章內(nèi)容)先修知識(shí)數(shù)值/布爾運(yùn)算、input()獲取用戶輸入、print()格式化輸出、基本數(shù)據(jù)類型轉(zhuǎn)換(eval()/int())對(duì)應(yīng)教材內(nèi)容第4章4.1節(jié)核心小節(jié):

4.1.1單分支選擇結(jié)構(gòu)(語法、流程圖、例4-1:求兩數(shù)較大值);

4.1.2雙分支選擇結(jié)構(gòu)(語法、三元運(yùn)算符、例4-2:優(yōu)化兩數(shù)比較);

4.1.3多分支選擇結(jié)構(gòu)(語法、例4-3:解一元二次方程);

4.1.4選擇結(jié)構(gòu)嵌套(語法、縮進(jìn)規(guī)則、例4-4:判斷閏年);

4.1.5選擇結(jié)構(gòu)程序舉例(例4-5:判斷奇偶、例4-6:求三數(shù)最大值、例4-7:商場(chǎng)打折計(jì)算)二、教學(xué)目標(biāo)1.知識(shí)目標(biāo)掌握選擇結(jié)構(gòu)的三種核心形式:?jiǎn)畏种В豪斫鈏f表達(dá)式:語句塊的語法,明確“表達(dá)式為True時(shí)執(zhí)行語句塊”(教材4.1.1);雙分支:掌握if表達(dá)式:語句塊1else:語句塊2的邏輯,會(huì)用三元運(yùn)算符表達(dá)式1if條件else表達(dá)式2簡(jiǎn)化雙分支(教材4.1.2);多分支:理解if表達(dá)式1:語句塊1elif表達(dá)式2:語句塊2...[else:語句塊N+1]的執(zhí)行順序(“一旦滿足一個(gè)條件,后續(xù)不再執(zhí)行”,教材4.1.3);理解選擇嵌套規(guī)則:同一層次縮進(jìn)一致,嵌套不交叉,內(nèi)層選擇是外層分支的一部分(教材4.1.4);熟記選擇結(jié)構(gòu)的關(guān)鍵細(xì)節(jié):表達(dá)式后必須加冒號(hào):、語句塊縮進(jìn)統(tǒng)一(4個(gè)空格或1個(gè)Tab)、多分支條件需按“從低到高”或“從高到低”排序(教材4.1.5例4-7)。2.能力目標(biāo)能獨(dú)立編寫單分支程序:如“輸入分?jǐn)?shù),若大于60則輸出‘及格’”(教材4.1.1邏輯);能靈活運(yùn)用雙分支與三元運(yùn)算符:如“判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù)”“求兩數(shù)較小值”(教材4.1.2例4-2);能設(shè)計(jì)多分支程序:如“解一元二次方程(根據(jù)判別式d的正負(fù)分3種情況)”(教材4.1.3例4-3);能處理選擇嵌套場(chǎng)景:如“先判斷年份是否合法,再判斷是否為閏年”(教材4.1.4例4-4);能排查選擇結(jié)構(gòu)的常見錯(cuò)誤:縮進(jìn)不一致、多分支條件順序混亂、嵌套交叉。3.素養(yǎng)目標(biāo)培養(yǎng)邏輯思維:能將實(shí)際問題(如閏年判斷、打折計(jì)算)轉(zhuǎn)化為“條件→分支”的程序邏輯;養(yǎng)成代碼規(guī)范性:堅(jiān)持“冒號(hào)不省略、縮進(jìn)統(tǒng)一、條件表達(dá)式清晰”,添加必要注釋(解釋條件含義);提升問題拆解能力:復(fù)雜問題(如多條件判斷)拆分為“外層判斷+內(nèi)層判斷”(如先驗(yàn)?zāi)攴莺戏ㄐ?,再判閏年)。三、教學(xué)重難點(diǎn)教學(xué)重點(diǎn)1.雙分支結(jié)構(gòu)的語法與三元運(yùn)算符的應(yīng)用(教材4.1.2,例4-2);

2.多分支結(jié)構(gòu)的條件順序與執(zhí)行邏輯(教材4.1.3,例4-3:d>0→d==0→d<0);

3.選擇嵌套的縮進(jìn)規(guī)則(同一層次縮進(jìn)相同,不交叉,教材4.1.4);

4.典型場(chǎng)景的選擇結(jié)構(gòu)實(shí)現(xiàn):兩數(shù)比較、一元二次方程求解、閏年判斷(教材例4-1/4-3/4-4)教學(xué)難點(diǎn)1.多分支條件的順序設(shè)計(jì):若條件無順序(如d>0/d==0/d<0)需覆蓋所有情況,若有范圍(如打折計(jì)算:<2000→2000≤<4000→≥4000)需按“從低到高”或“從高到低”排列(教材4.1.5例4-7);

2.選擇嵌套的層次判斷:內(nèi)層選擇屬于外層哪個(gè)分支(如閏年判斷中,“年份合法”是外層,“閏年條件”是內(nèi)層,教材4.1.4);

3.復(fù)合條件的表達(dá)式書寫:如閏年判斷的(year%4==0andyear%100!=0)oryear%400==0(教材例4-4)四、教學(xué)方法與手段教學(xué)方法:案例演示法:實(shí)時(shí)運(yùn)行教材例題(如例4-3解一元二次方程、例4-4判斷閏年),展示選擇結(jié)構(gòu)的執(zhí)行流程,標(biāo)注關(guān)鍵細(xì)節(jié)(冒號(hào)、縮進(jìn));對(duì)比教學(xué)法:對(duì)比“單分支+單分支”與“雙分支”的差異(如例4-1用兩個(gè)單分支,例4-2用雙分支優(yōu)化),對(duì)比“多分支”與“嵌套選擇”的適用場(chǎng)景(多分支適合并列條件,嵌套適合“先判斷大前提,再判斷小條件”);問題驅(qū)動(dòng)法:通過“如何處理一元二次方程的3種根情況?”“怎么先判斷年份是否有效,再判斷閏年?”引導(dǎo)學(xué)生思考分支設(shè)計(jì)。教學(xué)手段:多媒體課件:含教材4.1節(jié)的流程圖(圖4-1單分支、圖4-2雙分支、圖4-3多分支)、例題代碼(標(biāo)注冒號(hào)和縮進(jìn))、易錯(cuò)點(diǎn)截圖(如縮進(jìn)不一致報(bào)錯(cuò));演示代碼包:single_branch.py(例4-1)、double_branch.py(例4-2+三元運(yùn)算符)、multi_branch.py(例4-3)、nested_branch.py(例4-4);微課片段:“選擇嵌套的縮進(jìn)演示”“多分支條件順序錯(cuò)誤案例”(每段3-4分鐘,貼合教材易錯(cuò)點(diǎn))。五、教學(xué)準(zhǔn)備1.教師準(zhǔn)備課件:提取教材4.1節(jié)的核心例子(例4-1至例4-7),整理“選擇結(jié)構(gòu)語法表”(含單分支/雙分支/多分支的語法、流程圖、適用場(chǎng)景),標(biāo)注易錯(cuò)點(diǎn)(如冒號(hào)省略報(bào)錯(cuò)、縮進(jìn)混亂);演示環(huán)境:PyCharm已創(chuàng)建“第五周選擇結(jié)構(gòu)”項(xiàng)目,提前編寫4個(gè)演示腳本,確保運(yùn)行結(jié)果與教材一致(如例4-3輸入a=1、b=2、c=1,輸出“一個(gè)實(shí)根:-1.0”);課堂練習(xí)題:設(shè)計(jì)3道基礎(chǔ)題(判斷奇偶、分段函數(shù)計(jì)算、三數(shù)比較)、1道拓展題(嵌套判斷:先判是否為整數(shù),再判是否為素?cái)?shù));教具:選擇結(jié)構(gòu)流程圖卡片(單分支/雙分支/多分支),用于課堂互動(dòng)講解執(zhí)行順序。2.學(xué)生準(zhǔn)備預(yù)習(xí)教材4.1節(jié),重點(diǎn)閱讀例4-3(一元二次方程)和例4-4(閏年判斷),標(biāo)記不理解的條件表達(dá)式;啟動(dòng)PyCharm,創(chuàng)建“選擇結(jié)構(gòu)練習(xí)”項(xiàng)目,新建4個(gè)空白.py文件(對(duì)應(yīng)4種分支類型);復(fù)習(xí)布爾運(yùn)算符(and/or/not),確保能書寫復(fù)合條件(如year%4==0andyear%100!=0)。六、教學(xué)過程(總90分鐘)1.導(dǎo)入(5分鐘)問題導(dǎo)入:“輸入一個(gè)整數(shù),如何讓程序判斷它是奇數(shù)還是偶數(shù)?”(引導(dǎo)學(xué)生思考“需要兩種結(jié)果,用雙分支”);“解一元二次方程時(shí),判別式d>0有兩個(gè)實(shí)根,d==0有一個(gè)實(shí)根,d<0無實(shí)根,怎么用程序處理這3種情況?”(引出多分支)。案例演示:

快速運(yùn)行教材例4-5的簡(jiǎn)化版代碼,展示選擇結(jié)構(gòu)的作用:x=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))

ifx%2==0:

print(f"{x}是偶數(shù)")

else:

print(f"{x}是奇數(shù)")輸入“12”輸出“偶數(shù)”,輸入“13”輸出“奇數(shù)”,引導(dǎo)學(xué)生關(guān)注“條件判斷→分支執(zhí)行”的邏輯,切入本節(jié)課重點(diǎn)。2.新課講授(60分鐘)模塊1:?jiǎn)畏种нx擇結(jié)構(gòu)(10分鐘,教材4.1.1)語法與執(zhí)行流程:

展示語法if表達(dá)式:語句塊,結(jié)合教材圖4-1流程圖講解:“先算表達(dá)式,為True則執(zhí)行語句塊,否則跳過”;

強(qiáng)調(diào)關(guān)鍵細(xì)節(jié):表達(dá)式后加:、語句塊縮進(jìn)(4個(gè)空格)。教材例4-1演示:

代碼實(shí)現(xiàn)“輸入兩個(gè)實(shí)數(shù),輸出較大者”(用兩個(gè)單分支):a=eval(input("請(qǐng)輸入實(shí)數(shù)a:"))

b=eval(input("請(qǐng)輸入實(shí)數(shù)b:"))

ifa<b:#條件1:a小于b,max=b

max=b

ifa>=b:#條件2:a大于等于b,max=a

max=a

print(f"a、b中的較大值為:{max}")測(cè)試輸入“22”和“12”,輸出“22”,講解“兩個(gè)單分支順序執(zhí)行,覆蓋所有情況”;

對(duì)比思考:“有沒有更簡(jiǎn)潔的方式?”(引出雙分支)。模塊2:雙分支選擇結(jié)構(gòu)(15分鐘,教材4.1.2)語法與優(yōu)勢(shì):

展示語法if表達(dá)式:語句塊1else:語句塊2,結(jié)合教材圖4-2流程圖:“二選一,表達(dá)式為True執(zhí)行塊1,否則執(zhí)行塊2”;

對(duì)比例4-1(兩個(gè)單分支)與例4-2(雙分支):“雙分支更簡(jiǎn)潔,無需寫兩個(gè)條件”。教材例4-2優(yōu)化演示:

用雙分支重構(gòu)例4-1:a=eval(input("請(qǐng)輸入實(shí)數(shù)a:"))

b=eval(input("請(qǐng)輸入實(shí)數(shù)b:"))

ifa<b:

max=b

else:

max=a

print(f"a、b中的較大值為:{max}")測(cè)試輸入“15”和“25”,輸出“25”,說明“雙分支覆蓋所有情況,代碼更短”。三元運(yùn)算符:

講解語法結(jié)果=表達(dá)式1if條件else表達(dá)式2,用三元運(yùn)算符簡(jiǎn)化例4-2:max=bifa<belsea#等價(jià)于雙分支演示效果:輸入“10”和“8”,max為10,強(qiáng)調(diào)“僅適合分支體為單條賦值語句的場(chǎng)景”。模塊3:多分支選擇結(jié)構(gòu)(15分鐘,教材4.1.3)語法與執(zhí)行邏輯:

展示語法if表達(dá)式1:塊1elif表達(dá)式2:塊2...else:塊N+1,結(jié)合教材圖4-3流程圖:“依次判斷條件,滿足一個(gè)則執(zhí)行對(duì)應(yīng)塊,后續(xù)不再判斷”;

強(qiáng)調(diào)條件順序:“若條件有范圍(如打折),需按‘從低到高’或‘從高到低’排列,避免條件覆蓋”。教材例4-3演示(解一元二次方程):

代碼實(shí)現(xiàn)“根據(jù)判別式d的正負(fù),輸出不同根的情況”:importmath

a=eval(input("請(qǐng)輸入一元二次方程的系數(shù)a:"))

b=eval(input("請(qǐng)輸入一元二次方程的系數(shù)b:"))

c=eval(input("請(qǐng)輸入一元二次方程的系數(shù)c:"))

d=b**2-4*a*c#判別式

ifd>0:#兩個(gè)不同實(shí)根

x1=(-b+math.sqrt(d))/(2*a)

x2=(-b-math.sqrt(d))/(2*a)

print(f"方程有兩個(gè)不同的實(shí)根:{x1:.6f}、{x2:.6f}")

elifd==0:#一個(gè)實(shí)根

x=-b/(2*a)

print(f"方程有一個(gè)實(shí)根:{x}")

else:#無實(shí)根

print("方程無實(shí)根")分3次測(cè)試:輸入a=1、b=2、c=1(d=0),輸出“一個(gè)實(shí)根:-1.0”;輸入a=2、b=4、c=1(d>0),輸出兩個(gè)實(shí)根;輸入a=7、b=2、c=3(d<0),輸出“無實(shí)根”;

講解“多分支按d的三種情況排序,覆蓋所有可能,無遺漏”。模塊4:選擇結(jié)構(gòu)嵌套(15分鐘,教材4.1.4)語法與縮進(jìn)規(guī)則:

講解“內(nèi)層選擇結(jié)構(gòu)屬于外層分支的語句塊,必須與外層分支的其他語句同一縮進(jìn)”,舉例:#外層判斷年份是否合法,內(nèi)層判斷是否為閏年

year=eval(input("請(qǐng)輸入年份:"))

iftype(year)==intandyear>=1:#外層:年份合法

#內(nèi)層:閏年條件

if(year%4==0andyear%100!=0)oryear%400==0:

print(f"{year}是閏年")

else:

print(f"{year}不是閏年")

else:#外層:年份不合法

print("您輸入的不是有效的年份!")強(qiáng)調(diào)“嵌套不交叉,內(nèi)層縮進(jìn)比外層多4個(gè)空格,避免語法錯(cuò)誤”。教材例4-4演示(判斷閏年):

測(cè)試輸入“2020”(合法+閏年),輸出“是閏年”;輸入“90.4”(不合法),輸出“無效年份”;輸入“2000”(閏年)、“1900”(不是閏年),驗(yàn)證邏輯;

拆解復(fù)合條件:(year%4==0andyear%100!=0)oryear%400==0,說明“兩個(gè)條件滿足一個(gè)即為閏年”。模塊5:選擇結(jié)構(gòu)程序舉例(5分鐘,教材4.1.5)快速演示例4-7(商場(chǎng)打折):

用多分支實(shí)現(xiàn)“購物金額<2000無折扣,2000≤<4000九五折,4000≤<8000九折,≥8000八折”:total=eval(input("原購物總金額:"))

iftotal<2000:

t=total

eliftotal<4000:

t=total*0.95

eliftotal<8000:

t=total*0.9

else:

t=total*0.8

print(f"優(yōu)惠后的金額為:{t:.1f}元")講解“多分支條件按‘從低到高’排列,無需寫上限(如2000≤total<4000簡(jiǎn)化為total<4000),代碼更簡(jiǎn)潔”。3.課堂練習(xí)(15分鐘)必做任務(wù)(12分鐘,貼合教材邏輯):雙分支練習(xí):編寫odd_even.py,輸入一個(gè)整數(shù),判斷是奇數(shù)還是偶數(shù)(教材例4-5);多分支練習(xí):編寫score_level.py,輸入學(xué)生成績(jī)(0-100),按“90-100優(yōu)秀,80-89良好,70-79中等,60-69及格,<60不及格”輸出等級(jí);嵌套練習(xí):編寫leap_year.py,實(shí)現(xiàn)教材例4-4的閏年判斷,要求先判年份是否為整數(shù)且≥1,再判閏年。選做任務(wù)(3分鐘):

用三元運(yùn)算符實(shí)現(xiàn)“輸入兩個(gè)數(shù),返回較小值”,代碼:min_val=aifa<belseb,測(cè)試輸入“5”和“3”,輸出“3”。教師巡視指導(dǎo),重點(diǎn)解決:多分支條件順序錯(cuò)誤(如先寫“total<8000”再寫“total<4000”,導(dǎo)致條件覆蓋);嵌套縮進(jìn)混亂(內(nèi)層選擇與外層分支縮進(jìn)不一致);復(fù)合條件邏輯錯(cuò)誤(如閏年判斷漏寫year%100!=0)。4.課堂小結(jié)(5分鐘)核心知識(shí)點(diǎn)梳理:選擇結(jié)構(gòu)三形式:?jiǎn)畏种В▎我粭l件)、雙分支(二選一,三元運(yùn)算符簡(jiǎn)化)、多分支(多條件并列);嵌套規(guī)則:內(nèi)層屬于外層分支,縮進(jìn)統(tǒng)一,不交叉;關(guān)鍵細(xì)節(jié):冒號(hào)不省略、條件覆蓋所有情況、復(fù)合條件用and/or/not正確組合。易錯(cuò)點(diǎn)強(qiáng)調(diào):多分支條件需按“從低到高”或“從高到低”排序,避免條件覆蓋;嵌套縮進(jìn)必須比外層多4個(gè)空格,否則報(bào)錯(cuò);閏年判斷的復(fù)合條件不能漏寫“year%100!=0”(如1900不是閏年)。5.作業(yè)布置(5分鐘)基礎(chǔ)作業(yè)(貼合教材習(xí)題):編寫程序:輸入一個(gè)三位數(shù),判斷是否為“水仙花數(shù)”(各位數(shù)字立方和等于自身,如153=13+53+33),用多分支或嵌套;用雙分支+三元運(yùn)算符實(shí)現(xiàn)“輸入兩個(gè)數(shù),輸出它們的和與差(如‘和:8,差:2’)”。拓展作業(yè):

優(yōu)化教材例4-3(解一元二次方程),增加“a=0”的判斷(若a=0,不是一元二次方程,提示“請(qǐng)輸入a≠0的系數(shù)”),用嵌套選擇實(shí)現(xiàn)。七、板書設(shè)計(jì)第4章程序控制結(jié)構(gòu)(4.1選擇結(jié)構(gòu))

一、單分支結(jié)構(gòu)二、雙分支結(jié)構(gòu)三、多分支結(jié)構(gòu)

語法:語法:語法:

if表達(dá)式:if表達(dá)式:if表達(dá)式1:塊1

語句塊塊1elif表達(dá)式2:塊2

else:...

塊2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論