申宇飛
(山西省長(zhǎng)治市上黨區(qū)第一中學(xué)校,山西長(zhǎng)治 046000)
在我國(guó)教育發(fā)展在各地出現(xiàn)一些不均衡的現(xiàn)象,我校所處的地區(qū),經(jīng)濟(jì)水平相對(duì)落后,學(xué)生在編程上的學(xué)習(xí)相比大城市的學(xué)生存在較大差距,學(xué)生們?cè)谏细咧兄捌毡槲磳W(xué)習(xí)過(guò)編程,存在基礎(chǔ)較差等問(wèn)題,編程是教學(xué)的重點(diǎn)也是難點(diǎn),在過(guò)去的教學(xué)中,通過(guò)生搬硬套的教學(xué)方法不僅沒(méi)有幫助學(xué)生更好的學(xué)習(xí)并且理解編程,反而使同學(xué)們產(chǎn)生了畏難情緒,對(duì)編程失去信心。
對(duì)于我們學(xué)生的學(xué)習(xí)現(xiàn)狀,那么我們?cè)撊绾斡行У慕鉀Q這個(gè)問(wèn)題,我們可以通過(guò)更好的引導(dǎo)方式來(lái)引導(dǎo)學(xué)生學(xué)習(xí)編程,海龜繪圖就是一款非常不錯(cuò)的工具。
海龜繪圖是python標(biāo)準(zhǔn)庫(kù)中提供的模塊,非常適合引導(dǎo)青少年學(xué)習(xí)編程,之前同學(xué)們學(xué)不好編程其中一個(gè)很重要的問(wèn)題就是,編寫好程序以后,程序執(zhí)行的過(guò)程同學(xué)們沒(méi)有一個(gè)直觀的認(rèn)識(shí),對(duì)于一個(gè)初學(xué)者而言,在編寫程序中出錯(cuò)是一個(gè)很難避免的問(wèn)題,但是看不到程序執(zhí)行的過(guò)程使同學(xué)們改錯(cuò)困難,對(duì)編程失去興趣。但是海龜繪圖這個(gè)模塊,通過(guò)在畫布創(chuàng)建一只小海龜,隨著程序運(yùn)行的過(guò)程,小海龜可以繪制出很對(duì)精美的圖形。
使用海龜繪圖只需要引入import turtle包即可,然后我們需要?jiǎng)?chuàng)建一個(gè)繪圖區(qū)域就是畫布turtle.screensize (canvwidth=None,canvheight=None,bg=None),在畫布的中心原點(diǎn)上默認(rèn)有一只朝東方向的小海龜,這只小海龜相當(dāng)于畫筆,通過(guò)turtle.pendown()使畫筆落下,那么畫筆移動(dòng)時(shí)將畫線。turtle.penup()將畫筆抬起,那么畫筆移動(dòng)時(shí)將不會(huì)畫線。turtle.pensize(width=None)設(shè)置畫筆的寬度。
通過(guò)turtle.forward(distance)控制海龜前進(jìn) distance指定的距離,方向?yàn)楹}數(shù)某颉urtle.backward (distance)控制海龜后退distance指定的距離,方向與海龜?shù)某蛳喾?。turtle.right(angle)與turtle.left(angle)設(shè)置海龜朝向右轉(zhuǎn)或左轉(zhuǎn)angle度。
我們要繪制一個(gè)簡(jiǎn)單的正方形如圖1所示,位于原點(diǎn)的海龜前進(jìn)100個(gè)像素,然后海龜朝向向左轉(zhuǎn)動(dòng)90°,然后海龜再向前移動(dòng)100像素,以此類推就可以看到一個(gè)正方形出現(xiàn)在我們面前。
圖1 正方形海龜運(yùn)行軌跡圖
import turtle as t
t. forward (100),t.left(90)
t. forward (100),t.left(90)
t. forward (100),t.left(90)
t. forward (100)
我們可以通過(guò)以下代碼繪制正六邊型的平鋪圖形,如圖2所示,主要程序代碼如下:
圖2 正六邊型平鋪圖
import turtle as t
colPos=(-300,-300)
rowPos=colPos
row=5
col=8
for i in range(row):
t.up()
t.setposition(rowPos)
for j in range(col):
t.penup()
t.setposition(colPos)
t.pendown()
t.setheading(0)
for k in range(3):
t.forward(100)
t.left(60)
if k==1:
colPos=t.position()
t.up()
t.setposition(rowPos)
t.setheading(0)
for z in range(4):
t.forward(100)
t.left(60)
rowPos=t.position()
colPos=rowPos
使用海龜繪圖可以直觀的看到程序的執(zhí)行過(guò)程,更方便學(xué)生理解、編寫、修改程序,通過(guò)繪制有趣的圖案,使學(xué)生逐漸對(duì)編程產(chǎn)生興趣,引導(dǎo)學(xué)生更加輕松愉快的打開編程世界的大門,在這種興趣的基礎(chǔ)上,不斷的探究信息技術(shù)的各個(gè)領(lǐng)域。