天天看點

python海龜作圖不用循環_Python的視覺藝術家:PyTurtle的繪畫藝術第一講兩個例子程式如何工作發生了什麼稍微改進了一下

海龜繪圖很适合用來引導孩子學習程式設計。 最初來自于 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所創造的 LOGO 程式設計語言。

請點選右上角“關注”按鈕關注我們喲:跟着木辛老師學習Python程式設計知識,變身快樂的程式設計達人吧~

在接下來的幾節課中,我們将通過使用turtle子產品編寫一些簡單的程式來建立漂亮、複雜的視覺效果。

這個turtle子產品我們暫且叫:小海龜吧。

這個小海龜呀,是一個虛拟的、不存在的,它隻是螢幕上的一個小三角,就像帶着一支鋼筆一樣,它無論走到哪裡都會使用這個鋼筆來繪制線條。就讓我們呢來試一試吧!

使用小海龜作圖到底有多簡單呢?我們不僅能夠隻用幾行代碼就建立出非常絢麗的視覺效果,還可以跟随小海龜看看每行代碼如何讓它移動的。

海龜繪圖最初來自Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所創造的 LOGO 程式設計語言。這是一個旨在幫助小朋友們快速接觸程式設計,快速學習程式設計的項目。

是以使用小海龜作圖能夠幫我們迅速了解代碼邏輯,快速掌握程式設計思想。

兩個例子

為了驗證我們剛才說的:簡單的程式建立複雜且漂亮的視覺效果,我們試試幾個例子吧

python海龜作圖不用循環_Python的視覺藝術家:PyTurtle的繪畫藝術第一講兩個例子程式如何工作發生了什麼稍微改進了一下

python turtle程式設計第一個例子

咱們運作下看看效果吧

python海龜作圖不用循環_Python的視覺藝術家:PyTurtle的繪畫藝術第一講兩個例子程式如何工作發生了什麼稍微改進了一下

python turtle程式設計第一個例子運作效果

咱們使用了9行代碼就完成了如此絢麗的圖形效果,小朋友是不是很驚訝呀?

那咱們再來看一看另一個例子哈

python海龜作圖不用循環_Python的視覺藝術家:PyTurtle的繪畫藝術第一講兩個例子程式如何工作發生了什麼稍微改進了一下

python turtle程式設計第2個例子

這個例子的代碼稍微多一點,那實作的效果也會比較複雜,在這裡木辛老師就不貼出效果圖。有興趣的小朋友們可以去看看:《Python藝術家:PyTurtle》裡的《Python程式設計中的藝術家:python turtle 第7集》代碼的效果吧。

程式如何工作

看了這麼多絢麗多彩的視覺圖形,大家想不想深入的了解他們,看看這些程式是怎麼工作的呀?

下面呢,木辛老師就帶着大家一起仔細的分析下程式吧

我們先從第一個執行個體開始:

import turtlestar = turtle.Turtle()for i in range(50): star.forward(50) star.right(144)turtle.done()
           

第一行,導入(import)了繪制小海龜圖形的功能。這裡就用到了咱們之前講過子產品的知識

傳送門:Python小課堂第16課:隻需要10分鐘教會你怎樣使用程式設計中的子產品

這裡導入的就是已經編寫好了的代碼,這是程式設計工作最讓人激動的一個事情了。

如果我們編寫了一些很有意思并且很有用的代碼,可以把他分享給其他的人,同時也可以自己重用它。

當我們使用

import turtle
           

的時候,就表示我們的程式能夠使用Python程式員編寫的子產品了。

在執行個體效果圖或者視訊中,大家看到的小小的黑色箭頭就是咱們可愛的小海龜了!它在螢幕上移動的時候就會使用鋼筆進行繪畫了。

接下來一行

star = turtle.Turtle()
           

是告訴計算機,我們将要使用star這個變量做小海龜的執行個體。這樣,我們在後續調用小海龜作圖的動作的時候,隻需要使用star直接喚起對應方法就可以。就可以控制小海龜在螢幕上移動,并使用鋼筆進行繪圖了。

然後就是一個for循環的代碼塊,這個for循環需要周遊50次,也就是說for循環的代碼塊裡的代碼會被執行50次呢。

傳送門:Python小課堂 第十課之轉呀轉 轉圈圈咱們可以進入之前課程再複習一下for循環的知識

在這裡,木辛老師再換一個角度講一下:

這句代碼

for i in range(50):
           

說明,我們建立了一個循環(loop),他會重複的執行一組指令(一次又一次,一遍又一遍地循環這些代碼行)。

python海龜作圖不用循環_Python的視覺藝術家:PyTurtle的繪畫藝術第一講兩個例子程式如何工作發生了什麼稍微改進了一下

這個特定的循環使用range()函數設定了一個範圍,其中包含0~49,總共50個數字(計算機總是從0開始計數的!)。

在這個循環中,字母i周遊了範圍中的每一個數字。是以i從0開始,然後變為1, 然後是2,以此類推,直到49為止,一共會執行50個步驟。

在這裡,我們把i叫做變量(variable)。變量存儲了在程式進行的過程中可以修改的一個值。

在接下來,我們看到了代碼縮進,這種程式設計風格是Python獨有的,這個縮進之後的代碼塊,就是要被for循環周遊的一個部分了。

在該循環中,這些代碼會被執行50次;每次i從0~49的範圍中擷取一個新的數字的時候,這個代碼塊都會被執行一遍,直到達到50次。

木辛博士說

LOGO程式設計語言建立于1967年,這是一種教育用程式設計語言,在50年之後的今天,它仍然用來教授基本的程式設計,也是小朋友們比較喜愛的一種程式設計語言。簡單易學,效果炫酷。是不是呀?

發生了什麼

咱們現在進入for循環的代碼塊看看究竟吧。

star.forward(50)
           

指令forward(x)會讓咱們的小海龜的鋼筆在螢幕上向前移動x個點;也就是說,咱們這個語句會讓小海龜向前移動50個點。

然後緊接着,

star.right(144)
           

咱們指令小海龜向右轉144°。

由于這是一個for循環,程式繼續運作并且回到了循環的開始位置。

計算機将i加上1之後,又重新執行剛才的語句,直到循環結束。

最後一句代碼的意思很明顯了,就是告訴小海龜:咱們的工作做完了,可以休息了。

這樣,我們第一個例子就講完了;小朋友們想一下,這個例子有沒有可以改進的地方呀?

稍微改進了一下

咱們的第二個例子的大體邏輯和第一個例子很像,但是做出來的效果比第一個例子還要炫酷。

咱們隻是在其中的兩個地方做了一點點手腳

painter.pencolor("blue”)
           

這一句代碼的意思是我們讓小海龜将鋼筆的顔色改成了藍色。從此,小海龜路過的地方,繪制出來的圖形就都是藍色的了,是不是很有意思呀?

我們今天的課程就先到這裡了,大家是不是又收獲了一些非常有意思的知識呀?

下節課呢,我們會再深入的講解一些新的程式設計思路,也會給大家示範一些更加絢麗和好玩的視覺效果。大家會更深入的了解到我們的小海龜。