Python竟能畫這么漂亮的花,帥呆了(代碼分享)
閱讀本文大概需要3分鐘
關(guān)于函數(shù)和模塊講了這么久,我一直想用一個(gè)好玩有趣的小例子來總結(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)了,我們還是回到正題:我想來想去,決定要找一個(gè)好玩有趣的例子來總結(jié),總于被我找到了,這個(gè)例子只有20幾行代碼,非常適合初學(xué)者.
我們先來看一下效果圖:
1.引入模塊
Python標(biāo)準(zhǔn)庫里有一個(gè)非常有趣可以畫畫的小模塊叫turtle(海龜),我們先引入這個(gè)模塊
import turtle#從標(biāo)準(zhǔn)庫里面引入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è)小海龜出來
第一步我們已經(jīng)把窗口創(chuàng)建好了,你可以認(rèn)為是一個(gè)畫布已經(jīng)ok了,下面我們要讓主角登場(chǎng)了,把海龜畫出來.
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)畫來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è)花瓣出來,這樣循環(huán)一周360度,就花出一個(gè)漂亮的花了,最后當(dāng)海龜回到花心的時(shí)候,我們把海龜?shù)念^向右轉(zhuǎn)90度,花一根長(zhǎng)的線就大功告成了.是不是等不急,快來看源碼吧
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)文章
Django admin管理工具TabularInline類用法詳解
這篇文章主要介紹了Django admin管理工具TabularInline類用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05python3實(shí)現(xiàn)raspberry pi(樹莓派)4驅(qū)小車控制程序
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)raspberry pi(樹莓派)4驅(qū)小車控制程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法,涉及Python針對(duì)列表的簡(jiǎn)單遍歷、計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2018-04-04使用python怎樣產(chǎn)生10個(gè)不同的隨機(jī)數(shù)
這篇文章主要介紹了使用python實(shí)現(xiàn)產(chǎn)生10個(gè)不同的隨機(jī)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Python selenium實(shí)現(xiàn)斷言3種方法解析
這篇文章主要介紹了Python selenium實(shí)現(xiàn)斷言3種方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Python和Anaconda的版本對(duì)應(yīng)關(guān)系
這篇文章主要為大家介紹了Python和Anaconda,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06python實(shí)現(xiàn)DEM數(shù)據(jù)的陰影生成的方法
這篇文章主要介紹了python實(shí)現(xiàn)DEM數(shù)據(jù)的陰影生成的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07基于python3.7利用Motor來異步讀寫Mongodb提高效率(推薦)
Motor是一個(gè)異步mongodb driver,支持異步讀寫mongodb。它通常用在基于Tornado的異步web服務(wù)器中。這篇文章主要介紹了基于python3.7利用Motor來異步讀寫Mongodb提高效率,需要的朋友可以參考下2020-04-04