


摘要:Python語言是目前最接近自然語言的通用編程語言,目前受關注度非常高,國內許多高校都開設了Python程序設計課程。Python語言的Turtle庫是一個簡單、易用的繪圖庫,可以用作Python語言學習的入門庫。通過選取一些有趣的繪圖案例,來增強學生學習語言的興趣。
關鍵詞:Python語言;Turtle庫
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)22-0111-03
開放科學(資源服務)標識碼(OSID):
Python語言是一種面向過程又面向對象的編程語言,語法簡單、易讀。同時,還是開源的編程語言,擁有豐富而強大的擴展庫。Python代碼簡潔、語法簡單、上手容易,應用廣泛。目前,全國有多所高校都開設了Python程序設計課程。我校作為福建省知名的職業院校,也開始開設Python課程。Python語言的Turle庫是一個簡單、易用的繪圖庫,可以用作Python語言學習的入門庫[1]。
Turtle庫也叫海龜繪圖庫,它是Python語言最基礎的圖形繪制函數庫,基本原理是用程序控制一只海龜爬行,并將其軌跡動態生成圖形進行輸出。Turtle圖形繪制的概念誕生在1969年,最初成功應用于LOGO編程語言。由于turtle圖形繪制概念十分直觀且非常流行,Python接受了這個概念,并形成了Python的turtle庫[2]。
本文首先引導學生畫一個等邊三角形,然后擴展到畫正n變形,引出循環語句的概念,然后引導學生如何來畫一個五角星。
1 繪制正n邊形
我安裝的python版本是Python -3.8.1( 32-bit)。安裝完成以后,在“開始“菜單里面點擊Python 3.8下的IDLE,就會出現Python的界面。
首先,我們在命令提示符后面輸入幾行代碼:
在上面的語句中,import turtle的作用是調用turtle庫。第2個語句設置一個寬500像素、高600像素的畫布,畫布的顏色是綠色。第3個語句設置畫筆的寬度是6像素。第4個語句設置畫筆的顏色是紅色。這個時候,就會在畫布的正中間出現一個代表畫筆的三角形箭頭。畫筆的初始位置是畫布的正中,這個位置為坐標原點(0,0),往左是x軸的正方向,往上是v軸的正方向。
1.1采用for循環繪制正n邊形
第一種方法,考慮用for循環語句,如圖3所示。turtle.reset()語句的作用是清空窗口,重置turtle的狀態為初始狀態。也就是說,原來畫的圖形都沒有掉了,畫筆重新回到了畫布正中心。
在這里面,用到了一個for循環,和一個range函數,range函數是一個左閉右開的函數。
其中,for num in range(0,10):語句的作用是循環10次。命令turtle.forward( 100)的作用是畫筆向前畫100個像素,命令turtle.right(36)的作用是畫筆方向順時針轉動36度。這樣循環十次就可以畫出一個正10邊形,其邊長為100像素。同理,可以畫出正9邊形、正8邊形、正6邊形、正5邊形、正4邊形、正3邊形。最開始的時候,考慮到360度不能被7、11整除,無法繪制正7、11邊形。后來想到在命令turtle.right()命令中,參數直接輸入360/7或者360/11,就可以繪制正7、11邊形了。這樣,就可以繪制任意正n變形了。就是畫筆方向轉動的角度是360/n,n為正n邊形的邊數。
1.2采用turtle.circle()命令繪制正n變形
第2種方法,是采用turtle庫的turtle.circle()命令來畫正n邊形。
Turle.circle(radius,extent,steps)有三個參數,第一個半徑,第二個是弧度,當第三個參數steps的值為正整數時,繪制steps=n的內切正n變形。語句turtle.Circle(150,steps=3)的含義是畫一個內切圓半徑為150的正3邊形。因此要繪制一個內切圓為150的正n邊形,其代碼為turtle.circle(150,steps=n)。
2 繪制五角星
在繪制正n邊形方法一的基礎上,將代碼稍做修改,繪制五角星。將turtle.right()命令的參數,改成180-180/n。如圖所示,五角星就輸入turtle.right(180-180/5),21角星就是turtle.right(180-180/21)。通過試驗發現,n為奇數才能畫出正確的n角星,如果輸入的n為偶數,則繪制的圖形有錯誤。
3 結論
在引導學生學習Python語言的過程中,我們應該選取一些趣味性較強的案例,來激發學生的學習興趣。通過漸進式的趣味性案例的講解,使學生產生濃厚的興趣。興趣是最好的老師,只有學生容感興趣時,才能夠學得好。課堂教學只依靠老師一人的努力是不夠的,只有充分調動學生的積極性、激發學生的學習興趣,才能更好地完成教學[3-4]。
參考文獻:
[1]劉梅彥,徐英慧,周淑一.基于成果導向的“Python程序設計”教學設計[J]‘電腦知識與技術,2017,13(20):105-107.
[2]嵩天,黃天羽.Python語言程序設計教學案例新思維[J].計算機教育,2017(12):11-14,19.
[3]嵩天,黃天羽,禮欣.Python語言:程序設計課程教學改革的理想選擇[J],中國大學教學,2016(2):42-47.
[4]嵩天,黃天羽,禮欣.面向計算生態的PYthon語言入門課程教學方案[J].計算機教育,2017(8):7-12.
【通聯編輯:唐一東】
作者簡介:林曉芬(1981-),女,碩士研究生,副教授。