張樂
摘? 要: 為了提高Python語言程序設(shè)計課程教學(xué)質(zhì)量,文章采取案例教學(xué)法設(shè)計了案例“身體質(zhì)量指數(shù)BMI”,通過設(shè)計案例、分析案例、總結(jié)歸納、拓展應(yīng)用等四個過程對Python分支結(jié)構(gòu)教學(xué)過程進(jìn)行了具體分析。實踐證明,案例教學(xué)法能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動學(xué)生學(xué)習(xí)的積極主動性,提高學(xué)生分析問題和解決實際問題的能力,從而提高了Python語言程序設(shè)計的教學(xué)效果。
關(guān)鍵詞: Python程序設(shè)計; 案例教學(xué)法; 分支結(jié)構(gòu); 教學(xué)過程分析
中圖分類號:G642.0? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2021)04-72-03
Abstract: In order to improve the teaching quality of Python language programming course, this paper adopts the case teaching method by designing the case of "body mass index BMI", and analyzes the teaching process of Python branch structure through the four processes of case design, case analysis, summary and application expansion. Practice has proved that the case teaching method can stimulate students' interest in learning, mobilize students' initiative in learning, improve students' ability to analyze and solve practical problems, which improves the teaching effect of Python programming course.
Key words: Python programming; case teaching method; branch structure; teaching process analysis
0 引言
Python語言是一種生態(tài)語言,是一種簡潔且強(qiáng)大的語言,是一種開源的腳本語言,是僅次于C語言的第二語言[1]。傳統(tǒng)教學(xué)過程中,采用填鴨式教學(xué),以教師為主體將算法思想和程序代碼灌輸給學(xué)生,在沒有理解思想的基礎(chǔ)上編寫代碼十分困難,無法調(diào)動學(xué)生的積極性,也無法真正理解分支結(jié)構(gòu)的意義和實際應(yīng)用。因此,基于案例教學(xué)法,采用學(xué)生主體教師主導(dǎo)的模式,設(shè)計并引入案例,引導(dǎo)學(xué)生分析案例并總結(jié)歸納程序語法特點及流程圖,從而編寫程序解決實際問題,能夠充分調(diào)動學(xué)生學(xué)習(xí)興趣,拓展自主思維能力,熟練掌握語法知識并靈活運用從而解決實際問題。
1 案例教學(xué)法概念
案例教學(xué)法是19世紀(jì)70年代由美國哈佛大學(xué)法學(xué)院院長蘭德爾提出來的,20世紀(jì)30年代開始廣泛應(yīng)用于商業(yè)教育中,20世紀(jì)70年代后迅速在普通教育領(lǐng)域普及。案例教學(xué)法是根據(jù)教學(xué)目的,用案例來組織學(xué)生進(jìn)行學(xué)習(xí)、研究和鍛煉能力的方法[2]。
案例教學(xué)法主要是采用啟發(fā)式教學(xué),以案例為基本素材,以學(xué)生為主體,將其引入一個真實情境中,引導(dǎo)學(xué)生根據(jù)案例內(nèi)容展開討論、質(zhì)疑和反思等活動,培養(yǎng)學(xué)生綜合運用知識解決實際問題的能力[3]。
2 Python分支結(jié)構(gòu)概述
程序由三種基本結(jié)構(gòu)構(gòu)成:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。分支結(jié)構(gòu)在三種結(jié)構(gòu)中具有承前啟后的作用,“前”是對順序結(jié)構(gòu)的深化認(rèn)識,“后”是為學(xué)習(xí)循環(huán)語句做鋪墊[4]。分支結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果而選擇不同向前執(zhí)行路徑的一種運行方式。分支結(jié)構(gòu)主要包括三種分支:單分支、二分支和多分支,通過if語句實現(xiàn)。本文主要以多分支if-elif-else為基礎(chǔ)設(shè)計案例,采用“設(shè)計案例-分析案例-總結(jié)歸納-拓展應(yīng)用”案例教學(xué)思路對三種分支結(jié)構(gòu)進(jìn)行具體分析。
3 案例應(yīng)用過程
3.1 設(shè)計案例
教師根據(jù)學(xué)生興趣和實際情況,設(shè)計案例“身體質(zhì)量指數(shù)BMI”并將案例代碼呈現(xiàn)給學(xué)生觀察:
height=eval(input("請輸入身高(米):"))
weight=eval(input("請輸入體重(公斤):"))
bmi=weight/pow(height,2)
print("BMI數(shù)值為:{:.2f}".format(bmi))
if bmi<18.5:
print("偏瘦")
elif bmi<24:
print("正常")
elif bmi<28:
print("偏胖")
else:
print("肥胖")
引導(dǎo)學(xué)生結(jié)合學(xué)過的知識閱讀程序,并在Python運行環(huán)境IDLE中運行程序,效果如圖1所示。
3.2 分析案例
【提問】觀察運行結(jié)果,教師提問:該程序的功能是什么?
學(xué)生進(jìn)行分組討論,教師指導(dǎo)得出結(jié)論:該案例根據(jù)輸入的身高和體重值計算BMI結(jié)果,并根據(jù)結(jié)果輸出對應(yīng)的四種體型:偏瘦、正常、偏胖、肥胖。根據(jù)分析結(jié)果,畫出流程圖如圖2所示。
由此可看出該案例屬于多分支結(jié)構(gòu),采用if-elif-else語句實現(xiàn),根據(jù)條件判斷結(jié)果執(zhí)行其中一條語句。如果BMI<18.5,輸出“偏瘦”,否則(即BMI>=18.5)繼續(xù)判斷第二個條件BMI<24,輸出“正?!?,否則(即BMI>=24)繼續(xù)判斷第三個條件BMI<28,輸出“偏旁”,若都不成立(即BMI>=28),輸出“肥胖”。
【提問】提示學(xué)生將程序中的elif語句全部刪除,運行程序觀察結(jié)果并分析程序功能。
刪除后主要程序代碼如圖3。
if bmi<18.5:
print("偏瘦")
else:
print("肥胖")
運行后效果如圖3所示:
學(xué)生分組討論,教師引導(dǎo)學(xué)生畫出流程圖,并得出結(jié)論:刪除elif后的案例只有兩種結(jié)果,若BMI值<18.5則輸出“偏瘦”,若BMI值>=18.5則都輸出“肥胖”。由此可見刪除elif語句后,if-else格式是二分支結(jié)構(gòu)語句,根據(jù)條件判斷選擇兩種結(jié)果中的一種執(zhí)行。
【提問】將程序中的else語句刪除后,觀察運行結(jié)果,分析程序功能。
刪除后主要代碼如圖4。
if bmi<18.5:
print("偏瘦")
運行程序結(jié)果如圖4所示:
引導(dǎo)學(xué)生觀察運行結(jié)果,并多次測試,發(fā)現(xiàn)程序運行只有一種輸出結(jié)果:若BMI值<18.5則輸出“偏瘦”,其他BMI值不輸出。由此可見,if語句表示單分支結(jié)構(gòu),根據(jù)條件判斷,只執(zhí)行一種結(jié)果。
3.3 總結(jié)歸納
根據(jù)以上案例分析結(jié)果,教師引導(dǎo)學(xué)生總結(jié)出在Python語言程序設(shè)計中分支結(jié)構(gòu)有三種:單分支、二分支和多分支。
⑴ 單分支結(jié)構(gòu):if語句
語法結(jié)構(gòu)如下:
if <條件>:
<語句塊>
流程圖如圖5所示。
if語句首先判斷<條件>的結(jié)果值,如果結(jié)果為True,則執(zhí)行語句塊里的語句序列,然后控制轉(zhuǎn)向程序中的下一條語句。如果結(jié)果為False,語句塊里的語句會被跳過,控制轉(zhuǎn)向程序的下一條語句。
⑵ 二分支結(jié)構(gòu):if-else語句
語法格式如下:
if? <條件>:
<語句塊1>
else:
<語句塊2>
流程圖如圖6所示。
if-else語句首先判斷<條件>的結(jié)果值,如果結(jié)果為True,則執(zhí)行語句塊1里的語句序列,如果結(jié)果為False,則執(zhí)行語句塊2里的語句序列。
⑶ 多分支結(jié)構(gòu):if-elif-else語句
語法格式如下:
if <條件1>:
<語句塊1>
elif<條件2>:
<語句塊2>
...
else:
<語句塊N>
流程圖如圖7所示。
if-elif-if語句先判斷條件1是否成立,若成立執(zhí)行語句塊1;不成立則判斷條件2是否成立,成立執(zhí)行語句塊2,否則繼續(xù)判斷條件3以此類推。當(dāng)所有條件不成立,則執(zhí)行else下面的語句塊。
3.4 拓展應(yīng)用
了解分支結(jié)構(gòu)的三種分支后,為了鞏固所學(xué)知識并將知識點應(yīng)用到實際案例中,設(shè)計案例“PM2.5空氣質(zhì)量提醒”,要求學(xué)生編寫程序并實現(xiàn)效果:
輸入PM2.5值,并輸出相應(yīng)的空氣質(zhì)量提醒。
如果PM2.5值<35,打印“空氣優(yōu)質(zhì)快去戶外運動!“
如果35<=PM2.5值<75,打印”空氣良好,適度戶外活動!”
如果PM2.5值>=75,打印“空氣污染,請小心!”
教師引導(dǎo)學(xué)生分析案例:案例中有三種情況,即三個分支。因此可以采用多分支結(jié)構(gòu)if-elif-else結(jié)構(gòu)實現(xiàn),代碼如下:
PM=eval(input("請輸入PM2.5數(shù)值: "))
if 0<=PM < 35:
print("空氣優(yōu)質(zhì),快去戶外運動!")
elif PM <75:
print("空氣良好,適度戶外活動!")
else:
print("空氣污染,請小心!")
【提問】是否可以用單分支實現(xiàn)?
多分支可以理解為多個單分支,可以將案例中的if-elif-else改寫為三個if語句來實現(xiàn),代碼如下:
PM=eval(input("請輸入PM2.5數(shù)值: "))
if 0<=PM<35:
print("空氣優(yōu)質(zhì),快去戶外運動!")
if 35<=PM<75:
print("空氣良好,適度戶外活動!")
if 75<=PM:
print("空氣污染,請小心!")
4 結(jié)束語
本文針對Python中的分支結(jié)構(gòu),設(shè)計“身體質(zhì)量指數(shù)BMI”案例,采用案例教學(xué)法(引入案例-分析案例-總結(jié)歸納-拓展應(yīng)用),形象生動地分析了三種分支結(jié)構(gòu)運行效果及語法格式特點,并引導(dǎo)學(xué)生自主總結(jié)要點從而應(yīng)用到其他實際案例中。由此可見,案例教學(xué)法能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動其積極性和主動性,提高分析問題和解決實際問題的能力,案例教學(xué)法將理論知識和實際操作緊密結(jié)合,從而提高了Python語言程序教學(xué)的課堂效率。鑒于此,期望將案例教學(xué)法融入到相關(guān)程序設(shè)計課程各個環(huán)節(jié),真正做到教學(xué)方法和教學(xué)過程的融合,進(jìn)而將案例教學(xué)法應(yīng)用到各科教學(xué)過程中,從而提高整體教學(xué)質(zhì)量。
參考文獻(xiàn)(References):
[1] 嵩天,禮欣,黃天羽.Python語言程序設(shè)計基礎(chǔ)(第2版)[M].高等教育出版社,2017.
[2] 鄭均輝,李瑋瑤,李圣普.C語言程序設(shè)計課程案例教學(xué)法探討與研究[J].內(nèi)江科技,2001.10:37
[3] 邵雪梅,馬駿,程輝.案例教學(xué)法在“C語言程序設(shè)計”課程中的應(yīng)用[J].新鄉(xiāng)學(xué)院學(xué)報(自然科學(xué)版),2012.29(3):283-284
[4] 廉侃超,李霞.案例教學(xué)法在VB程序設(shè)計選擇結(jié)構(gòu)教學(xué)中的應(yīng)用[J].運城學(xué)院學(xué)報,2014.2:92