Python編程11:Python畫圖之turtle模塊

2020-12-15 和小po一起學編程

#少兒編程#

在中國電子學會組織的「全國青少年軟體編程等級考試」Python一級考綱裡要求考生知道turtle庫的功能,知道如何導入該庫文件,掌握它的使用方法:前進、後退、左右轉、提落筆、畫點、畫圓等。

turtle,中文是海龜,所以我們有時也稱叫海龜作圖。

turtle模塊繪圖思路

首先導入turtle模塊;起始默認位置被設定在(0,0)處,即窗口的中心(起始位置可以設置),且繪製方向是從左往右;turtle模塊是模擬用筆繪製圖形的,默認筆是向下的(turtle.pendown()),好像筆尖放在紙上一樣;開始畫圖時,設置筆向下,按照要求移動繪製圖形繪製結束,將筆抬起turtle.penup()

【練習1】畫直線

我們先看一個最簡單的例子,用turtle模塊畫直線,如圖1。

圖1

① 要使用turtle庫首先要做的就是在代碼的最開始導入這個庫,這樣我們才能使用turtle提供的方法來畫圖。

第1行代碼import turtle,就是導入turtle庫。

② 紅框內的第3~7行代碼是初始化畫筆。

第3行代碼turtle.pencolor("red",),就是將畫筆的顏色設為紅色。Turtle庫的pencolor(color) 函數是設置畫筆顏色,參數可以是顏色的英文單詞,也可以是RGB3元組或顏色代碼。比如下面這3種寫法效果是一樣的,都是將畫筆設為紅色:

turtle.pencolor( (1,0,0) )

turtle.pencolor(「red」)

turtle.pencolor(「#ff0000」)

第5行代碼turtle.pensize(5),就是設置筆的粗細。Turtle庫的pensize(width)函數是設置筆尖的粗細,參數width為整型,數字越大,越粗。

第7行代碼turtle.pendown(),就是把筆尖放到畫布上,如果筆尖是抬起的狀態,那是無法畫畫的。

③ 中間第9~13行是真正畫畫的代碼。

第9行代碼turtle.forward(100),是畫長度為100的直線,從左往右畫。運行結果如圖2

圖2

第11行代碼turtle.goto(-100,-50),是將畫筆移動到(-100,-50)處。運行結果如圖3。

圖3

注意:turtle庫的gogo(x,y)函數,函數本身是移動到坐標為(x,y)的位置。不過如果筆尖是抬起來的狀態,那麼使用goto函數,畫筆是移到(x,y)處;但如果筆尖是放下的狀態,那麼使用goto函數,畫筆就是畫到(x,y)處。這就好比小朋友們拿著畫筆畫畫,如果筆尖抬起,那麼筆移到畫紙的另一個地方,紙上是不會有痕跡的,但如果筆尖是落在紙上的,那麼筆移到畫紙的另一個地方,紙上是有痕跡的。

我們這裡由於之前使用了pendown()函數,所以筆尖是落在紙上的,因此使用goto(x,y)函數後,畫布上是有畫的痕跡的。

第13行代碼turtle.forward(100),是再次畫長度為100的直線。運行結果如圖4。

圖4

④ 最後第15行代碼,turtle.penup(),是把筆尖抬起來。畫畫結束了,最後要把筆拿起來。

該練習實際運行結果如圖5:

圖5

【練習2】畫正方形

我們現在會畫直線了,那麼現在小朋友試著畫個正方形看看呢。

1、第一種方法:

我們用上面我們說的這些函數來畫個正方形,小朋友可以自己先試著自己寫寫代碼。

圖6是實現畫正方形的代碼:

圖6

① 行1的代碼是導入turtle庫

② 行3~行5的代碼是初始化畫筆

③ 行7~行10的代碼是通過goto(x,y)函數來實現畫正方形,由於筆尖是落下的,所以移動畫筆是會在畫布上畫出移動軌跡的,那麼我們只要算對坐標軸,就能畫出一個正方形。

2、第二種方法

上面那種方法雖然能畫出來,但小朋友們可能會覺得還要算坐標軸,很麻煩,而且也不符合畫正方形的一般思維。正方形有兩個特點,一個是4條邊相等,一個是4個角都是90度。

所以,我們現在看圖7這段代碼:

圖7

其它代碼我不說了,就單看行7~行9這三行代碼,這三行代碼實現了畫正方形。

① 行7的for語句,定義了我們這個循環要循環4次,i取值分別為0、1、2、3。

② 行8、行9是for循環體的代碼塊。

turtle.forward(150)是畫一條長度為150的直線。

turtle.rigth(90)是順時針轉動90度。如果你想逆時針轉90度,也可以使用turtle.left(90),小朋友們可以試一下。

這段代碼就是畫一條150的直線,轉90度,再畫150的直線,再轉90度,總共畫4次,就剛好完成一個正方形。

兩種方法的運行效果是一樣的,如圖8:

Ok,本篇我們使用turtle庫的工具繪製了最簡單的圖形,直線和正方形,會不會覺得太簡單了呢?turtle庫不僅能畫這些,它還可以畫很多很酷炫的圖形出來。我們後面會慢慢介紹的。

原創不易,請勿抄襲。歡迎大家關注我,和我多交流,如果你喜歡,請轉贊評三連,謝謝。

相關焦點

  • turtle製作遊戲秘籍之一
    2020/7/11上午8點上課內容_Python的tkinter彈球基礎關於Python海龜畫圖屏幕的tracer命令滑鼠滾輪暗亮與保存圖像_Python海龜畫圖的圖形處理滑鼠滾輪縮放圖像.py編程娃娃原理篇勢不可擋之Python完全刪除海龜對象_how to delete python turtle entirely
  • 3種方法學會python模塊使用,3分鐘直接上手一個python繪圖程序
    013種方式查看python模塊使用,使用turtle模塊完成第一個繪畫程序程式語言是一種工具,工具就是為了解決問題,我們的學習模式>02如何知道turtle(小海龜)模塊具體的函數呢?三種查看模塊下具有哪些函數的方法:1、在python代碼編輯器中,使用模塊加"."
  • 教孩子學Python編程之海龜畫圖
    安裝界面下載好了編程工具之後,就開始我們今天的編程之旅吧。打開IDLE的操作演示創建畫布第一步:引入turtle模塊:創建畫布之前必須引入turtle(海龜)模塊,在PythonShell程序中輸入:import turtle第二步:創建畫布:引入了turtle模塊,接下來我們要創建一個畫布,也就是一個用來畫圖的空白空間,就像藝術家的畫布一樣。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    6套課程) 資料庫操作(1套課程) python高級編程(6套課程) 注:零基礎全能篇中,針對windows和liunx系統均有兩套課程可供選擇學習,單純學python,哪個系統都一樣,初學者只需選擇自己熟悉的系統學習相應課程即可。
  • 年薪30萬+的python編程難不難?好學嗎?
    python翻譯成中文就是蟒;蚺蛇的意思。在計算機專業裡面Python是一門課程,專門學習計算機編程的課程,是一種跨平臺的電腦程式設計語言。一種高級,熱門的程式語言。那python好學嗎?(2)Python 是面向對象的編程言語面向對象是現代編程言語一般都具有的特性,否則在開發中大型程序時會綽綽有餘。
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • Python編程:開發工具(IDE)大匯總(附官方下載)
    最近有多位讀者留言,諮詢更便捷、高效的python編程開發工具(IDE),本文就給大家介紹四款業內常用的python軟體開發工具,並簡單介紹下每款軟體的特點,便於讀者按需選擇合適的學習軟體!,支持實時編寫並運行代碼、方程式,同時支持可視化圖像輸出等等,其安裝與啟動方式很簡單:安裝python,請參考往期視頻教程:Python安裝全過程詳解與驗證方法安裝pip安裝器,請參考往期文章:Python神器:找不到模塊怎麼辦?
  • 酷酷的爆炸效果_Python海龜畫圖不僅僅是畫圖
    Python的海龜畫圖模塊不僅僅是畫圖。用它還能製作動畫,製作多媒體遊戲等更多創意作品。在這個叫《酷酷的爆炸效果》作品中。每一個爆炸效果其實都是一隻海龜對象。只不過它們的造型在不斷地變化。為了有很多效果同時運行,採用了多線程的方式設計這個程序。
  • Minecraft中的Python編程,Hello Minecraft World!
    ,對Minecraft進行操作,需要搭建的環境:1.Minecraft服務端,以及使用python與服務端進行通訊的插件這裡選用開源的Minecraft服務端Bukkit,以及RaspberryJuice插件。
  • python教程之python數學運算
    存儲數據變量#兩個變量交換值,通過第三個參數實現print('兩個變量交換值,通過第三個參數實現'); #第一種方法是通過第三個參數實現x=5;#變量賦值y=11; #變量賦值,math.isinf(float(b))) #輸出true#decimal模塊:decimal意思為十進位,這個模塊提供了十進位浮點運算支持from decimal import Decimalnum1=Decimal('0.5534')num2
  • 《小灰教你零基礎學python》-Python入門語言
    二、什麼是程式語言程序(軟體)是使用程式語言編寫的,比如咱們日常使用的微信、qq、瀏覽器、播放器都是使用程式語言編寫的,程式語言有哪些:javapython>c語言php(有人稱php是最好的程式語言)這裡包括咱本套課程需要學習的python,其實理解咱這麼理解就行:咱們和外國人交流需要說英語,那麼咱們必須要學會英語才能和對方溝通;咱們需要讓電腦進行「溝通」就必須要使用程式語言。
  • 慢步學習,python編程實例中,對遍歷程序結構for語句的解析
    大家好,慢步繼續不定期更新通俗易懂的python編程學習內容。今天主要說說for語句。for語句是比較常見的語句,其實也算比較簡單的,多看幾個實例就可以了解。但慢步還是想囉嗦一些,跟大家解析一下。第6行為引用python-docx庫內的Document模塊(python-docx庫的引用默認為docx,和庫設計有關,其他庫一般用庫名稱)。第8行,打開word文檔(123.docx),用變量d來指代打開的文檔,後面代碼中 d 就是我們這裡打開的123.docx。
  • Python編程學了有用嗎?
    Python編程學了有用嗎?眾所周知,目前家長對於孩子的教育越來越重視,培養孩子的編程思維也是大家關心的話題,孩子學習Python語言,需要使用精確到標點、分號等特殊字符,可以提高孩子的編程能力和邏輯思維能力。作為成成年人學python編程可以大大提高工作效率。
  • TIOBE 11 月程式語言:Python超越Java!
    每月更新的編程排行榜,如期而至。 20年間,Java和C都是交替登上第一和第二的位置。本月Python歷史性排名第二,超越了Java,可以被稱為編程歷史上的獨特事件。
  • Python入門項目,從不會編程到完成這個小遊戲,也就兩天時間
    還在啃書本學python嗎?為什麼不試試用有趣的小遊戲來學編程?自己開發的遊戲,既能活學活用python,又能找回學習的自信。Python版本:3.6.4需要的相應模塊:cocos2d模塊;pyaudio模塊;包括其他的python自帶模塊
  • Python真的值得學習嗎
    1991年初python公布了第一個公開發行版本。由於它是用C語言實現的,所以從一出生,Python已經具有了:類,函數,以及以模塊為基礎的拓展系統等。 尤其是2017年人工智慧概念的興起,python的關注度也是越來越高。儘管目前它仍然無法和java等程式語言抗衡,但隨著未來人工智慧權重的提高,掌握python也就成為一種必然。它的開發效率比 C, Java 高很多,很多的創業公司當初為了把想法快速變成現實產品從而獲得投資資金,首選 Python作為開發語言。這估計也是當年推動python流行起來的另一個原因吧。
  • Python如何入門?直接按這個方式玩炸彈超人小遊戲,就能掌握編程
    還在從基礎知識點開始學python嗎?還不如直接玩python小遊戲炸彈超人,跟著詳細教程開始,從不會python到掌握python基礎知識點,並且還有所有源碼,想學不會編程都難。下面講一下開發Python小遊戲炸彈超人的大致步驟(在底部直接拿詳細教程和所有源碼)首先是開發工具Python版本:3.6.4相關模塊:Pygame,以及自帶的模塊然後開始搭建相應所需的環境,安裝python並添加到環境變量,pip安裝需要的相關模塊即可。
  • 實現童年寶可夢,教你用Python畫一隻屬於自己的皮卡丘
    經過一整天的苦戰,從未接觸過turtle庫的文摘菌實現了從0到1,成就感滿滿。先看下效果基本思路:選好畫板大小,設置好畫筆顏色,粗細,定位好位置,然後畫鼻子,頭、耳朵,眼睛,嘴,身體,手腳,尾巴。都知道,turtle 是 python 內置的一個比較有趣味的模塊,俗稱 海龜繪圖,它是基於tkinter模塊打造,提供一些簡單的繪圖工具。
  • Python開發簡單爬蟲【學習資料總結】
    將URL存放在關係型數據中 將URL存儲在緩存資料庫中 三、網頁下載器和urllib2模塊 網頁下載器類似於瀏覽器,會將網際網路對應的網頁以HTML的形式下載到本地,存儲成本地文件或內存字符串,然後進行後續的分析。
  • python是什麼,python能幹什麼,為什麼大家都學pyhon一起來看看吧
    首先大家要明白python是一種跨平臺的程式語言,python編程的特點易讀、易維護,所以被大量的用戶所歡迎,python最大的特點是開發速度快,因為編程開發效率一直很低,python有很多第三方庫,所以開發起來事半功倍,很流行的一句話,人生苦短,我學python,可謂是把python特點完整的詮釋出來。