大部分人都不知道-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吧
推薦閱讀: