大部分人都不知道-Python竟能畫這麼漂亮的花,帥呆了

這是菜鳥學python的第26篇原創文章

閱讀本文大概需要3分鐘

關於函數和模塊講了這麼久,我一直想用一個好玩有趣的小例子來總結一下,同時也作為實戰練習一下。

趣味編程其實是最好的學習途徑,回想十幾年前我剛畢業的時候,第一份工作就給手機上寫app,當時覺得非常好玩,那個是時候還是用symbian系統,熬了好幾個通宵用j2me寫了一個坦克大戰,到現在還記得當程序運行的時候坦克互戰的情景,真的是蠻興奮的。

好吧一下子扯遠了,我們還是回到正題:我想來想去,決定要找一個好玩有趣的例子來總結,總於被我找到了,這個例子只有20幾行代碼,非常適合初學者.

我們先來看一下效果圖:

1.引入模塊

Python標準庫里有一個非常有趣可以畫畫的小模塊叫turtle(海龜),我們先引入這個模塊

import turtle #從標準庫裡面引入turtle

def draw_art():

window=turtle.Screen()#獲得一個窗口句柄

window.bgcolor("blue")#把背景設為藍色

window.exitonclick()#當點擊一下窗口會自動關閉

draw_art()#調用函數

2.畫一個小海龜出來

第一步我們已經把窗口創建好了,你可以認為是一個畫布已經ok了,下面我們要讓主角登場了,把海龜畫出來.

import turtle

def draw_art():

window=turtle.Screen()

window.bgcolor("blue")

#創建一個Turtle的實例這裡用了類的概念,實例化一個Turtle。類的概念後面文章會講

brad=turtle.Turtle()

brad.shape("turtle")#形狀是一個海龜除了畫海龜還可以畫箭頭,圓圈等等

brad.color("orange")#顏色是橙色

brad.speed(fast)#畫的速度是快速

window.exitonclick()#當點擊一下窗口會自動關閉

draw_art()#調用函數

3.畫一個海龜走兩步的圖

我們讓海龜在圖上走100步,然後再往下45度走100步

import turtle

def draw_art():

window=turtle.Screen()

window.bgcolor("blue")

brad=turtle.Turtle() #創建一個Turtle的實例

brad.shape("turtle")#形狀是一個海龜除了畫海龜還可以畫箭頭,圓圈等等

brad.color("orange")#顏色是橙色

brad.speed(fast)#畫的速度是快速

brad.forward(100)#向前走100步

brad.right(45)#然後海龜頭向右轉45度

brad.forward(100)#繼續向前走100步

brad.right(135)#然後有向右轉135度

window.exitonclick()

draw_art()#調用函數

4.畫出一個菱形

剛才我們已經畫來2邊,一個完整的菱形還差2邊,所以我們只需要把剛才走的路循環一下,把剛才的幾步抽象成一個小函數(把代碼抽取成一個獨立的函數,是重構經常用的技巧)然後循環2次,就搞定了.

import turtle

def draw_diamond(turt):

for i in range(1,3):

turt.forward(100)#向前走100步

turt.right(45)#然後海龜頭向右轉45度

turt.forward(100)#繼續向前走100步

turt.right(135)#然後有向右轉135度

def draw_art():

window=turtle.Screen()

window.bgcolor("blue")

brad=turtle.Turtle() #創建一個Turtle的實例

brad.shape("turtle")#形狀是一個海龜除了畫海龜還可以畫箭頭,圓圈等等

brad.color("orange")#顏色是橙色

brad.speed(fast)#畫的速度是快速

draw_diamond(brad)#抽象一個新的函數,專門畫菱形

window.exitonclick()

draw_art()#調用函數

5.畫出一朵漂亮的花

前面的4步我們已經可以畫出一個菱形了,其實這個菱形是我們要畫一個花瓣,接著我們主要把菱形向右旋轉10度,然後繼續畫一個花瓣出來,這樣循環一周360度,就花出一個漂亮的花了,最後當海龜回到花心的時候,我們把海龜的頭向右轉90度,花一根長的線就大功告成了.是不是等不急,快來看源碼吧

import turtle

def draw_diamond(turt):

for i in range(1,3):

turt.forward(100)#向前走100步

turt.right(45)#然後海龜頭向右轉45度

turt.forward(100)#繼續向前走100步

turt.right(135)#然後有向右轉135度

def draw_art():

window=turtle.Screen()

window.bgcolor("blue")

brad=turtle.Turtle() #創建一個Turtle的實例

brad.shape("turtle")#形狀是一個海龜除了畫海龜還可以畫箭頭,圓圈等等

brad.color("orange")#顏色是橙色

brad.speed(fast)#畫的速度是快速

for i in range(1,37):#循環36次

draw_diamond(brad)#單畫一個菱形也就是花瓣

brad.right(10)#旋轉10度

brad.right(90)#當花全部花完一周後,把海龜的頭向右轉90度

brad.forward(300)#花一根長的線

window.exitonclick()

draw_art()#調用函數

然後運行就是開頭的圖了,是不是很酷啊~~

閱讀原文

好了通過這個小例子希望大家能融匯函數和模塊的知識,今天就講到這裡啦,希望能給初學者一些啟發,若有什麼不懂的,也可以留言跟我探討交流.

最後說一下,原創真的不易,希望大家能夠給點支持,歡迎轉發,留言,讚賞也是對我的一點鼓勵和動力.

也歡迎更多喜歡Python的同學關注微信公眾號: 菜鳥學python,一起來學python吧


推薦閱讀:

TAG:Python | Python入門 | Python開發 |