安徽省潁上第一中學(236200)王 芳
Python 循環(huán)結構知識較為抽象,為了增強學生的學習體驗,樹立其學習信心,教師應做好課堂導入,并與學生積極互動,鼓勵學生開展課堂討論,進一步澄清學生的模糊認識,避免其走進理解的誤區(qū)。同時,教師還應針對性設計課堂訓練習題,幫助學生及時鞏固所學知識,積累運用for循環(huán)、while循環(huán)編寫程序代碼的經(jīng)驗。
為了幫助學生鞏固所學的Python 語句的順序結構、選擇結構知識,自然地引入要講解的循環(huán)結構內(nèi)容,使學生更好地把握三種結構的區(qū)別與聯(lián)系,為其靈活應用Python循環(huán)結構知識奠定堅實的基礎,在講解Python 循環(huán)結構之前,教師要求學生回顧所學的順序結構、選擇結構知識。
待學生回顧所學的順序結構、選擇結構知識后,教師創(chuàng)設如下生活情境,引導學生思考討論這些生活情境有哪些特點:(1)用打印機打印50 張試卷;(2)繞操場跑1000米;(3)鐘表指針的轉(zhuǎn)動。
學生通過思考與討論發(fā)現(xiàn),上述情境中存在著“重復”的現(xiàn)象?;诖?,教師告知學生生活中一些具有“重復”特點的行為可使用Python 中的循環(huán)結構進行描述,并讓學生知道:通過運用Python中的循環(huán)結構編寫專門的程序,替代一些重復、復雜的勞動,可很好地提高人們的辦事效率。由此導入新課:“Python 中的循環(huán)結構主要包括for 循環(huán)和while 循環(huán),這些是今天我們所要學習的內(nèi)容。”這樣,既能消除學生對新知識的陌生感,又能使學生認識到循環(huán)結構的重要意義,有助于激發(fā)學生的學習熱情。
在給學生講解for 循環(huán)時,為了更好地吸引學生的注意力,增強學生的學習體驗,教師應使用多媒體技術,圍繞相關的案例、問題與學生進行積極互動,這樣也可以進一步深化學生對for 循環(huán)知識的理解。
教師可利用多媒體課件給學生展示for 循環(huán)語句的一般格式。for 循環(huán)語句的一般格式并不復雜,也不難記憶,但要想深刻理解并非易事,其中,把握for 循環(huán)包含的語句、正確理解語句中縮進的含義是學生的學習難點。對此,教師可要求學生認真觀察以下兩段程序代碼,找到它們的區(qū)別。
而后詢問學生:上述程序代碼的書寫格式是否會對程序運行結果造成影響?你認為兩段程序代碼輸出的結果是怎樣的?讓學生暢所欲言。部分學生認為沒有影響,而部分學生則不知道如何回答。教師告訴學生:上述兩段程序代碼輸出的結果是不同的。
當學生百思不得其解時,教師可利用多媒體課件為學生展示上述兩段程序代碼的運行結果,使學生清晰地看到:當for 下面的語句沒有縮進時,程序在運行時會將下面所有內(nèi)容作為循環(huán)的內(nèi)容,直到遇到不縮進的代碼段,便不再執(zhí)行。
教師還要為學生展示for 循環(huán)的不同表現(xiàn)形式,如直接羅列、先定義后使用、使用range()函數(shù),同時要求學生分析for 循環(huán)的三種表現(xiàn)形式的區(qū)別。學生通過觀察不難發(fā)現(xiàn),“直接羅列”和for循環(huán)的一般格式相同,而“先定義后使用”則需要將列表的內(nèi)容賦值給一個參數(shù),再直接引用參數(shù)。教材中的“values=[1,2,3,4,5]”就是先將列表內(nèi)容賦值給參數(shù)“values”,而后使用語句“for value in values”實現(xiàn)對其的引用。其中使用range()函數(shù)時需要充分理解該函數(shù)中不同參數(shù)表示的含義。教師應為學生詳細講解range()函數(shù)內(nèi)容。range()函數(shù),一般包括三個參數(shù),第一個參數(shù)是開始的參數(shù),第二個參數(shù)是結束的參數(shù),第三個參數(shù)是步長,表示從第一個參數(shù)到第二個參數(shù)是以何種規(guī)律實現(xiàn)的,默認數(shù)值是1。為了使學生更好地理解range()函數(shù),教師為學生講解了如下不同參數(shù)輸出的結果:range(2,11,2)表示的是從2開始按照每次加2 的規(guī)律輸出,但最大不能達到11,對應的輸出結果為2,4,6,8,10;range(11,2,-2)表示的是從11 開始按照每次加-2 的規(guī)律輸出,但最小不能達到2,對應的輸出結果為11,9,7,5,3。如此,學生便能更好地理解range()函數(shù)。
for循環(huán)可通過range()函數(shù)控制循環(huán)的開始與結束,而while 循環(huán)則與之不同。while 循環(huán)需要先判斷表達式是否滿足一定的條件,只有滿足了條件要求,即表達式的值為真時,才會執(zhí)行循環(huán)內(nèi)容。課堂上,教師要求學生認真閱讀課本內(nèi)容,把握while 循環(huán)結構的構成。其中while 循環(huán)需要結合相關的表達式使用,因此教師與學生一起回顧所學的Python 表達式,并設計相關的問題,要求學生判斷表達式的結果,為其能夠?qū)懗稣_的while 循環(huán)語句奠定基礎。具體如下:
而后教師公布上述表達式的正確結果,給學生預留一定的思考時間,讓其結合自身的判斷結果,總結哪些表達式結果判斷錯誤,從而及時查漏補缺,堵住知識漏洞。另外,教師再結合具體的代碼為學生分析while 循環(huán)語句的執(zhí)行過程,使其認識到在編寫while 循環(huán)語句時必須有改變條件表達式值的語句,避免陷入無限循環(huán)之中。
在運用for 循環(huán)、while 循環(huán)編寫程序代碼解決實際問題時,一些控制循環(huán)的條件往往難以控制,此時需要在代碼中輸入關鍵字用于中斷循環(huán)。為了使學生掌握break語句、continue語句在中斷程序循環(huán)時的區(qū)別,教師應為學生分析具體的程序代碼,并通過程序代碼的運行,加深學生的理解。循環(huán)程序在遇到break 語句時便會跳出循環(huán),不再執(zhí)行循環(huán)體中break語句下面的代碼內(nèi)容;而continue語句則表示跳過本次循環(huán)結束前的語句,繼續(xù)回到循環(huán)開頭部分開始新一輪的循環(huán)。
運用程序解決實際問題時往往需要同時用到for 循環(huán)和while 循環(huán),當一個循環(huán)的循環(huán)體中套有另一個循環(huán)時,稱為循環(huán)的嵌套。循環(huán)的嵌套在程序設計中有著廣泛的應用,但是該部分知識較為抽象,不易理解,因此教師應注重結合具體的程序,為學生介紹循環(huán)嵌套應注意的細節(jié),為其靈活應用循環(huán)嵌套做好鋪墊。
首先,使用循環(huán)嵌套時,內(nèi)外循環(huán)的循環(huán)體應嚴格按照各自的格式書寫,不能出現(xiàn)交叉現(xiàn)象,否則程序會出錯;其次,當外循環(huán)每執(zhí)行一次循環(huán)時,內(nèi)循環(huán)往往會完成所有的循環(huán);最后,循環(huán)嵌套中內(nèi)循環(huán)需要引用外循環(huán)的參數(shù)。
例如,以下兩段程序代碼均能實現(xiàn)打印9×9 乘法表,但是打出的9×9 乘法表的格式是完全不同的,教師可引導學生思考這兩段程序代碼打印出的9×9乘法表的格式是怎樣的,以及為什么是這樣的。
教師可為學生講解上述兩段程序代碼的執(zhí)行過程,加深學生對循環(huán)嵌套的認識與理解。
為了使學生更加清晰、全面地掌握兩種循環(huán)結構之間的區(qū)別與聯(lián)系,教師設計以下問題引導學生討論:(1)for循環(huán)和while循環(huán)各有什么特點?(2)在編寫程序時如何選擇循環(huán)結構?(3)兩種循環(huán)嵌套時應注意哪些問題?
通過討論學生發(fā)現(xiàn),for 循環(huán)比較適合同一類對象的循環(huán),如數(shù)值,而且知道循環(huán)次數(shù)并且可使用range()函數(shù)控制循環(huán)的步長;while 循環(huán)是通過條件控制的循環(huán),并不知道循環(huán)多少次。因此,在編寫程序時在知道循環(huán)次數(shù)時應選擇for 循環(huán),在不知道循環(huán)次數(shù)時應選擇while 循環(huán)。運用循環(huán)結構解決實際問題時往往會涉及循環(huán)的嵌套,但是循環(huán)的嵌套需要遵循一定規(guī)則,即嵌套時應保證for 循環(huán)和while循環(huán)各自代碼的完整性,代碼內(nèi)容不能穿插。
學生完成上述兩種循環(huán)結構的學習后,為了及時幫助學生鞏固所學,鍛煉學生學以致用的能力,教師應安排相應的習題訓練。
訓練習題一:使用循環(huán)結構編寫程序計算1+2+3+…+100的值。
訓練習題二:使用所學的循環(huán)知識編寫程序,打印出如下圖案。
訓練習題三:分別判斷以下兩段程序代碼的輸出結果。
上述三道訓練習題分別考查了循環(huán)結構、循環(huán)結構的嵌套、break語句和continue語句的區(qū)別。學生只要能夠正確地編寫出相關的程序代碼和判斷程序代碼的輸出結果,就表明其已經(jīng)牢固掌握了上述知識。
通過Python循環(huán)結構的教學實踐,筆者得到了以下啟示:
Python 循環(huán)結構是高中信息技術的重點與難點內(nèi)容,為了順利地實現(xiàn)教學目標,教師應做好充分的教學準備。一方面,做好教學素材的收集工作,尤其是要認真制作相關的多媒體課件;另一方面,精心設計各個教學環(huán)節(jié),包括該怎樣引入新知識、設計怎樣的教學問題、達到什么樣的教學效果等。
在學習Python循環(huán)結構之前,學生已經(jīng)掌握了一些基本的信息技術知識。在教學中,教師應凸顯學生的主體地位,通過創(chuàng)設相關的問題情境,給學生預留空白時間,促使其積極開展自主學習活動、進行相關的思考與討論,使學生搞清楚相關知識的來龍去脈以及區(qū)別與聯(lián)系。
在教學Python循環(huán)結構時,教師不能滿足于學生牢固記憶相關的理論知識,應注重引導與啟發(fā)學生深入地理解程序的具體運行過程,從而編寫出正確的Python 循環(huán)程序。因此,在教學中,教師應多給學生講解具體的案例,并展示程序的實際運行結果,進一步深化學生對相關知識的理解,同時要通過與學生積極互動,使學生認識并積極糾正理解上的偏差,進一步強化學生的學習體驗以及提高學生的學習信心。
在Python循環(huán)結構的教學實踐中,教師應結合學生的實際情況,為學生安排相關的習題訓練,及時幫助學生夯實所學知識。教師可要求學生結合對所學知識的理解,編寫相關的程序,同時鼓勵其在計算機上運行程序,找到程序運行中出現(xiàn)的錯誤,認真分析原因,改正錯誤,直到程序能夠順利運行。這樣,不僅能夠起到幫助學生鞏固所學知識的目的,而且能夠讓學生積累豐富的程序編寫經(jīng)驗。