Python竟能畫這么漂亮的花,帥呆了(代碼分享)

閱讀本文大概需要3分鐘
關(guān)于函數(shù)和模塊講了這么久,我一直想用一個(gè)好玩有趣的小例子來(lái)總結(jié)一下,同時(shí)也作為實(shí)戰(zhàn)練習(xí)一下。
趣味編程其實(shí)是最好的學(xué)習(xí)途徑,回想十幾年前我剛畢業(yè)的時(shí)候,第一份工作就給手機(jī)上寫app,當(dāng)時(shí)覺得非常好玩,那個(gè)是時(shí)候還是用symbian系統(tǒng),熬了好幾個(gè)通宵用j2me寫了一個(gè)坦克大戰(zhàn),到現(xiàn)在還記得當(dāng)程序運(yùn)行的時(shí)候坦克互戰(zhàn)的情景,真的是蠻興奮的。
好吧一下子扯遠(yuǎn)了,我們還是回到正題:我想來(lái)想去,決定要找一個(gè)好玩有趣的例子來(lái)總結(jié),總于被我找到了,這個(gè)例子只有20幾行代碼,非常適合初學(xué)者.
我們先來(lái)看一下效果圖:

1.引入模塊
Python標(biāo)準(zhǔn)庫(kù)里有一個(gè)非常有趣可以畫畫的小模塊叫turtle(海龜),我們先引入這個(gè)模塊
import turtle#從標(biāo)準(zhǔn)庫(kù)里面引入turtle
def draw_art():
window=turtle.Screen()#獲得一個(gè)窗口句柄
window.bgcolor("blue")#把背景設(shè)為藍(lán)色
window.exitonclick()#當(dāng)點(diǎn)擊一下窗口會(huì)自動(dòng)關(guān)閉
draw_art()#調(diào)用函數(shù)
有關(guān)turtle模塊的使用方法,大家可以參考:

2.畫一個(gè)小海龜出來(lái)
第一步我們已經(jīng)把窗口創(chuàng)建好了,你可以認(rèn)為是一個(gè)畫布已經(jīng)ok了,下面我們要讓主角登場(chǎng)了,把海龜畫出來(lái).
import turtle
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
#創(chuàng)建一個(gè)Turtle的實(shí)例這里用了類的概念,實(shí)例化一個(gè)Turtle。類的概念后面文章會(huì)講
brad=turtle.Turtle()
brad.shape("turtle")#形狀是一個(gè)海龜除了畫海龜還可以畫箭頭,圓圈等等
brad.color("orange")#顏色是橙色
brad.speed('fast')#畫的速度是快速
window.exitonclick()#當(dāng)點(diǎn)擊一下窗口會(huì)自動(dòng)關(guān)閉
draw_art()#調(diào)用函數(shù)

3.畫一個(gè)海龜走兩步的圖
我們讓海龜在圖上走100步,然后再往下45度走100步
import turtle
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
brad=turtle.Turtle()#創(chuàng)建一個(gè)Turtle的實(shí)例
brad.shape("turtle")#形狀是一個(gè)海龜除了畫海龜還可以畫箭頭,圓圈等等
brad.color("orange")#顏色是橙色
brad.speed('fast')#畫的速度是快速
brad.forward(100)#向前走100步
brad.right(45)#然后海龜頭向右轉(zhuǎn)45度
brad.forward(100)#繼續(xù)向前走100步
brad.right(135)#然后有向右轉(zhuǎn)135度
window.exitonclick()
draw_art()#調(diào)用函數(shù)

4.畫出一個(gè)菱形
剛才我們已經(jīng)畫來(lái)2邊,一個(gè)完整的菱形還差2邊,所以我們只需要把剛才走的路循環(huán)一下,把剛才的幾步抽象成一個(gè)小函數(shù)(把代碼抽取成一個(gè)獨(dú)立的函數(shù),是重構(gòu)經(jīng)常用的技巧),然后循環(huán)2次,就搞定了.
import turtle
def draw_diamond(turt):
for i in range(1,3):
turt.forward(100)#向前走100步
turt.right(45)#然后海龜頭向右轉(zhuǎn)45度
turt.forward(100)#繼續(xù)向前走100步
turt.right(135)#然后有向右轉(zhuǎn)135度
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
brad=turtle.Turtle()#創(chuàng)建一個(gè)Turtle的實(shí)例
brad.shape("turtle")#形狀是一個(gè)海龜除了畫海龜還可以畫箭頭,圓圈等等
brad.color("orange")#顏色是橙色
brad.speed('fast')#畫的速度是快速
draw_diamond(brad)#抽象一個(gè)新的函數(shù),專門畫菱形
window.exitonclick()
draw_art()#調(diào)用函數(shù)

5.畫出一朵漂亮的花
前面的4步我們已經(jīng)可以畫出一個(gè)菱形了,其實(shí)這個(gè)菱形是我們要畫一個(gè)花瓣,接著我們主要把菱形向右旋轉(zhuǎn)10度,然后繼續(xù)畫一個(gè)花瓣出來(lái),這樣循環(huán)一周360度,就花出一個(gè)漂亮的花了,最后當(dāng)海龜回到花心的時(shí)候,我們把海龜?shù)念^向右轉(zhuǎn)90度,花一根長(zhǎng)的線就大功告成了.是不是等不急,快來(lái)看源碼吧
import turtle
def draw_diamond(turt):
for i in range(1,3):
turt.forward(100)#向前走100步
turt.right(45)#然后海龜頭向右轉(zhuǎn)45度
turt.forward(100)#繼續(xù)向前走100步
turt.right(135)#然后有向右轉(zhuǎn)135度
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
brad=turtle.Turtle()#創(chuàng)建一個(gè)Turtle的實(shí)例
brad.shape("turtle")#形狀是一個(gè)海龜除了畫海龜還可以畫箭頭,圓圈等等
brad.color("orange")#顏色是橙色
brad.speed('fast')#畫的速度是快速
for i in range(1,37):#循環(huán)36次
draw_diamond(brad)#單畫一個(gè)菱形也就是花瓣
brad.right(10)#旋轉(zhuǎn)10度
brad.right(90)#當(dāng)花全部花完一周后,把海龜?shù)念^向右轉(zhuǎn)90度
brad.forward(300)#花一根長(zhǎng)的線
window.exitonclick()
draw_art()#調(diào)用函數(shù)
然后運(yùn)行就是開頭的圖了,是不是很酷啊~~
總結(jié)
以上就是本文關(guān)于Python竟能畫這么漂亮的花,帥呆了(代碼分享)的全部?jī)?nèi)容,希望對(duì)打擊有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
python+opencv實(shí)現(xiàn)的簡(jiǎn)單人臉識(shí)別代碼示例
如有不足之處,歡迎留言指出。
相關(guān)文章
python3 pandas 讀取MySQL數(shù)據(jù)和插入的實(shí)例
下面小編就為大家分享一篇python3 pandas 讀取MySQL數(shù)據(jù)和插入的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python如何求100以內(nèi)的素?cái)?shù)
在本篇文章里小編給大家分享的是關(guān)于python如何求100以內(nèi)的素?cái)?shù)的方法實(shí)例,需要的朋友們可以學(xué)習(xí)下。2020-05-05
教你用Python實(shí)現(xiàn)自動(dòng)提取并收集信息的功能
今天教大家怎么用Python實(shí)現(xiàn)自動(dòng)提取并收集信息的功能,文中介紹的非常詳細(xì),有很多代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)
在機(jī)器視覺領(lǐng)域的深度學(xué)習(xí)中,很多數(shù)據(jù)集的標(biāo)注文件使用RLE的格式。但是神經(jīng)網(wǎng)絡(luò)的輸入一定是一張圖片,為此必須把RLE格式的文件轉(zhuǎn)變?yōu)閳D像格式。本文將利用Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn),感興趣的可以了解一下2022-08-08
Python 實(shí)現(xiàn)遞歸法解決迷宮問(wèn)題的示例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)遞歸法解決迷宮問(wèn)題的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
python requests庫(kù)爬取豆瓣電視劇數(shù)據(jù)并保存到本地詳解
這篇文章主要介紹了python requests庫(kù)爬取豆瓣電視劇數(shù)據(jù)并保存到本地詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08

