時寬宇
摘 要:在中學開展python程序語言課程,存在各種各樣的難題,本文探討通過大量實例來講解python語言中計數循環語句,可以讓學生更容易接受理解。實例設計時由簡到難,層層遞進,知識在實例中展現,讓學生在實例中理解知識。
關鍵詞:python語言;計數循環
計算機程序通常會周而復始地重復同樣的步驟,這稱為循環。重復一定次數的循環,稱為計數循環。計數循環還被很多人稱為for循環,因為很多語言在程序中都使用for關鍵字來創建這樣類型的循環。循環在編程中是非常重要的語句,如何讓學生更清晰明了的理解循環,需要教師巧妙設計例子,而在實例中可以讓學生更容易理解。
一、初次接觸,簡單了解
學生第一次接觸語言中的循環語句,對這些語句不清楚,不知道是做什么用處的,也不知道如何使用代碼來完成,這時需要教師巧妙設計,通過例子,讓學生容易理解這些問題,從而讓學生不產生畏難心理。教師可以先通過寫代碼,運行讓學生看結果,再返回來講解代碼中的語句的含義,這樣學生就會明白每一條語句都是起什么作用了,結合python語言簡單易懂的特點,循環語句就變得簡單了。
例1:來了解一個簡單的循環,在python中代碼如下:
>>> for loop in [1,2,3,4]:
print "hello,world!"
保存為loop.py,運行這個程序,可以看到這樣的結果:
hello,world!
hello,world!
hello,world!
hello,world!
例1代碼的意思是:變量loop的值從1開始,對應列表中的每一個值,這個循環會把下一個指令塊中的所有工作完成一次,每次執行循環時,變量loop會賦予這個列表中的下一個值。Print “hello,world!”就是python每次循環時要執行的代碼。For循環需要一個代碼告訴程序每次循環時做什么。通過這個實例,可以讓學生清楚理解計數循環的原理,學生在編程時就會注意語句的編寫,從而不再犯此類型錯誤。
二、層層遞進,逐步加深
在了解簡單的循環后,為加深學生對計數循環的印象,可以在此基礎上設計增加難度的程序,讓學生在實例中更加清楚認識循環結構。
例2:打印6的乘法口訣:
>>> for loop in [1,2,3,4]:
print loop,"* 6=",loop * 6
把這個程序保存為Loop3.py,然后運行。會看到這樣的結果:
1 * 6= 6
2 * 6= 12
3 * 6= 18
4 * 6= 24
三、巧用函數,化繁為簡
在上面的例子中,我們只循環了4次,如果希望循環運行100 次或者更多呢?這就得鍵入很多的數!如果利用range()函數,只輸入起始值和結束值,就會創建這二者之間的所有值。Range()會創建一個列表,其中包含某個范圍內的數。使用在乘法表中用到的例子,使用range()函數。
>>> for loop in range(1,4):
print loop,"* 6=",loop * 6
把這個程序保存為Loop4.py 并運行,會看到這樣的結果:
1* 6= 6
2 * 6= 12
3 * 6= 18
讓學生觀察運行結果,思考:這樣的結果是不是我們要的結果?是哪里出了問題?如何解決這個問題?通過學生思考這三個問題,這樣才能讓學生理解循環是如何執行命令的。最后教師再給出正確的解釋:基本上與第一個結果完全相同……不過少了最后一次循環!為什么呢?答案在于,range(1,4)給出的列表是[1,2,3]。range()函數會提供一個數字列表,從給定的第一個數開始,在給定的最后一個數之前結束,用更準確的語言來說就是它包含下限(本例中為1),但不包含上限(本例中為4),所以在編程中需要考慮到這一點,調整范圍來得到想要的循環次數。
四、巧設練習,加強學生理解
學習需要不斷練習,教師需要設計相關練習讓學生自己摸索探究才能理解循環的語句。如何用for循環實現百元百雞。此問題是程序設計的經典問題,涉及多層循環,能很好的提升學生的編程思維能力。
例6:某人帶100元去買雞,已知每只小雞0.5元,每只公雞2元,每只母雞3元,要求100元正好買100只雞,求出買雞方案。
程序代碼如下:
>>> for cock in range(1,51):
for hen in range(1,34):
for biddy in range(1,100):
if(2*cock+3*hen+biddy*0.5)==100:
if(cock+hen+biddy)==100:
print "cock=",cock,"hen=",hen,"biddy=",biddy
把這個程序保存為chicken.py 并運行,你會看到這樣的結果:
cock= 5 hen= 17 biddy= 78
cock= 10 hen= 14 biddy= 76
cock= 15 hen= 11 biddy= 74
cock= 20 hen= 8 biddy= 72
cock= 25 hen= 5 biddy= 70
cock= 30 hen= 2 biddy= 68
對于剛開始接觸編程的學生來說,實例越簡單易懂,接受起來越容易,選擇python語言來進行教學,更符合python的初衷:簡單易懂。實例的選取決定了一堂課的成敗,由易到難的遞進,更符合學生的學情和認知能力,所以教師在設計課程時,除了要考慮學生的學情和認知能力以外,還需要從學生的角度去考慮,設計合理合適的實例,由簡到難,層層遞進,讓學生在學習中不產生畏難心理,潛移默化中,在剖析實例的過程中理解掌握程序語言的編寫。