日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python绘制如下图形、小三角形边长20_在编程中发现数学之美——使用Python小龟绘制多边形...

發(fā)布時間:2025/3/21 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python绘制如下图形、小三角形边长20_在编程中发现数学之美——使用Python小龟绘制多边形... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在使用數(shù)學(xué)知識畫出很酷的各種圖形之前,你需要先學(xué)習(xí)Python編程語言的基礎(chǔ)知識。本文將會帶你熟悉以下編程概念:循環(huán)、變量、函數(shù)、使用小龜模塊繪制圖像。本文假設(shè)你已經(jīng)安裝了Python,如果沒有,歡迎你訪問我的在線編程學(xué)習(xí)網(wǎng)站www.icoding.pub,你可以在編程入門—使用python語言開發(fā)游戲課程中下載Python并學(xué)習(xí)安裝過程和Python基礎(chǔ)操作。本文是在Python編程中發(fā)現(xiàn)數(shù)學(xué)之美的第一章內(nèi)容,其余內(nèi)容會陸續(xù)發(fā)布在www.icoding.pub,歡迎關(guān)注。

小龜模塊

Python的小龜模塊來源于Logo語言。Logo語言發(fā)明于1960年代,目的是使所有人都能夠?qū)W習(xí)編程。Logo語言有可供人機(jī)交互的圖形界面。Python的設(shè)計者對Logo語言的小龜模塊如此喜歡,以至于他們也在Python中設(shè)計了小龜模塊。

在Python的小龜模塊中,你可以控制類似小龜?shù)膱D像,像在游戲中控制一個角色。你需要給小龜清晰明確的指令,指導(dǎo)小龜在屏幕上的動作。因為小龜?shù)倪\動會留下軌跡,我們可以通過控制小龜運動畫出各種圖形。

導(dǎo)入小龜模塊

打開IDLE,新建文件,保存為myturtle.py。使用小龜模塊,你需要首先引入它的函數(shù)。在Python中,函數(shù)是指完成某一功能的可重復(fù)使用的一段代碼。Python中有許多內(nèi)置函數(shù),當(dāng)然你也可以創(chuàng)建自己的函數(shù),我們稱之為自定義函數(shù)。本章中你就將寫自己的自定義函數(shù)。

模塊在Python中指一個文件,這個文件中含有預(yù)定義的函數(shù)和定義,這些函數(shù)和定義你可以在其他程序中使用。小龜模塊在你安裝Python的時候已經(jīng)自動安裝了。

Python中引入模塊的方法有許多,我們使用簡單的一種,在myturtle.py中,輸入以下語句:from turtle import *

from表示我們將從外部的文件中導(dǎo)入某些內(nèi)容。我們在from后輸入要導(dǎo)入的模塊,這里是turtle。我們用import獲取欲導(dǎo)入的內(nèi)容,這里的通配符*表示我們將turtle的內(nèi)容全部引入到當(dāng)前的程序。

移動小龜

現(xiàn)在你已經(jīng)引入了小龜模塊,你可以輸入指令輸入指令移動小龜了。我們將使用foreward()函數(shù)(縮寫為fd)來命令小龜移動一段距離并在后面留下軌跡。注意,forward()是我們從turtle小龜模塊中引入函數(shù)中的其中一個。使小龜移動:foreward(100)

這里,括號中的100表示小龜移動的步數(shù)。在編程語言中,100是傳遞給foreward函數(shù)的參數(shù)。當(dāng)然,你也可以將100改成其它任何值。保存,運行程序,一個新窗口會打開,窗口中心有一個箭頭。

正如你所見,小龜起點為窗口正中,向右移動了100步(100個像素)。注意,默認(rèn)的形狀是一個箭頭,不是烏龜。輸入以下指令變?yōu)闉觚數(shù)男螤?#xff1a;from turtle import *

forward(100)

shape('turtle')

或許你已經(jīng)猜到了,shape()是小龜模塊中定義的另一個函數(shù)。這個函數(shù)讓你可以定義默認(rèn)的箭頭為其他形狀,如圓、方塊。這里,shape()函數(shù)的參數(shù)是字符串'turtle',不是數(shù)字。保存并運行,你會看到箭頭的形狀已經(jīng)變成了小龜。

改變方向

小龜只能在它的方向上向前走。改變方向,你首先必須使用right()或left()函數(shù)讓小龜轉(zhuǎn)一定的角度。修改程序如下:from turtle import *

forward(100)

shape('turtle')

right(45)

forward(150)

你會發(fā)現(xiàn),小龜從窗口中心開始,向前走100步,右轉(zhuǎn)45度,然后向前走了150步。練習(xí)1-1:修改代碼,使小龜?shù)能壽E畫一個正方形。

循環(huán)執(zhí)行代碼

每一種編程語言都有自動重復(fù)執(zhí)行一定次數(shù)的方法。這個功能很重要,因為重復(fù)執(zhí)行避免了你一遍又一遍輸入相同內(nèi)容代碼的麻煩。它還可以幫你避免輸入錯誤,從而保證程序正常運行。

for循環(huán)

Python語言中使用for執(zhí)行循環(huán)代碼。我們用range指明循環(huán)次數(shù)。打開IDLE,新建文件for_loop.py,輸入:for i in range(2):

print('hello')

這里,range()函數(shù)為每一個循環(huán)i創(chuàng)建了一個迭代器。迭代器每次使用會依順序產(chǎn)生新值。括號中的2是傳遞給range()函數(shù)的參數(shù),與前面?zhèn)鬟f給forward()和right()參數(shù)類似。

這個例子中,range(2)創(chuàng)建了一個包括兩個值:0和1的序列。對兩個值中的每一個,for分別執(zhí)行冒號之后的代碼,在這兒是執(zhí)行打印hello。

記住,在所有需要循環(huán)執(zhí)行的代碼(冒號之后的)前按TAB鍵(或4個空格),以使這些代碼有相同的縮進(jìn)。縮進(jìn)告訴Python哪些代碼行在循環(huán)內(nèi)容需要for循環(huán)執(zhí)行。別忘了for語句最后的冒號,它告訴Python下面的代碼是需要循環(huán)執(zhí)行的。保存、運行以上代碼,你會看到輸出兩行hello。

打印兩行hello是因為range(2)創(chuàng)建了包含兩個數(shù)字0和1的序列。這表示for指令逐個訪問序列中的0和1,每次訪問打印hello。我們可以對代碼做如下修改:for i in range(10):

print(i)

保存并運行,結(jié)果是打印了從0到9的10個數(shù)字。

你注意到了嗎?range()函數(shù)的序列是從0開始,到參數(shù)的前一個數(shù)字結(jié)束(這里是9)。上面的代碼的作用可簡述為“對從0到9范圍中的每一個值,打印當(dāng)前的數(shù)字。”for循環(huán)重復(fù)執(zhí)行代碼,直到超出數(shù)字范圍。下面我們在小龜程序中使用for循環(huán)。

使用for循環(huán)畫正方形

上面的練習(xí)1-1中,你面臨的挑戰(zhàn)是使用forward()和right()畫正方形。完成這個任務(wù),你不得不重復(fù)forward(100)和right(90)四次。這不但需要輸入許多代碼,而且輸入過程中還往往出錯。

現(xiàn)在我們有了for循環(huán),就可以省去重復(fù)輸入相同代碼的麻煩了。下面的myturtle.py程序,使用for代替了重復(fù)的forward()和right()語句:from turtle import *

shape('turtle')

for i in range(4):

forward(100)

right(90)

注意,shape('turtle')語句應(yīng)該在import語句后面其他繪畫代碼的前面。for循環(huán)內(nèi)部的兩行代碼告訴小龜,向前100步然后右轉(zhuǎn)90度(想想對小龜來說哪邊是左哪邊是右)。由于正方形有四條邊,我們使用range(4)讓代碼循環(huán)四次,運行代碼的結(jié)果會如下面的圖片:

1_squares.gif

小龜向前100步然后右轉(zhuǎn),重復(fù)了四次,最終回到原來出發(fā)的點。恭喜你,你使用for循環(huán)畫出了正方形。

創(chuàng)建自定義函數(shù)

我們寫了畫正方形的代碼,我們可以使用個小魔術(shù)將代碼保存起來,以后需要畫正方形的時候隨時調(diào)用。每種變成語言都有實現(xiàn)這個功能的方法,在Python里它被成為函數(shù),函數(shù)在編程中非常重要。函數(shù)使代碼精巧并易于維護(hù)修改,將復(fù)雜問題化解為若干函數(shù)的過程中,也有助于你找到解決問題的最佳方法。在前面的代碼中你已經(jīng)使用過Python語言內(nèi)置的函數(shù),現(xiàn)在我們將學(xué)習(xí)怎么創(chuàng)建我們自己的函數(shù)。

定義函數(shù)你需要為它取個名字,可以取任何名字,記住不要與Python語言的關(guān)鍵字相同,如list,range,等等。為函數(shù)命名的時候,最后取個有意義的名字,這樣你調(diào)用的時候能夠方便的想起來。這里我們?yōu)槲覀儺嬚较虻暮瘮?shù)命名為square(),因為我們這個函數(shù)的作用是畫正方形,修改剛才的程序mytutle.py,增加下面內(nèi)容:def square():

for i in range(4):

forward(100)

right(90)

def關(guān)鍵字告訴Python我們正定義一個函數(shù),后面的將會是函數(shù)名字,這兒是square()。別忘了square后面的兩個括號!Python中它們的出現(xiàn)表示現(xiàn)在要處理的是函數(shù)。后面我們將在括號中放數(shù)值,但即使沒有任何數(shù)值,括號也必須要有以讓Python知道這是個函數(shù)。另外,不要忘記函數(shù)定義語句末尾的冒號。注意,函數(shù)內(nèi)容部分的代碼都有向右4個空格的縮進(jìn),這是告訴Python哪些代碼是函數(shù)內(nèi)部的語句。

如果現(xiàn)在運行,什么也不會出現(xiàn)。你定義了函數(shù),但還沒有運行它。要運行函數(shù)你需要調(diào)用它,對代碼繼續(xù)修改,修改后的代碼如下:from turtle import *

shape('turtle')

def square():

for i in range(4):

forward(100)

right(90)

square()

保存,運行。程序的最后一行,通過square()調(diào)用了函數(shù)。現(xiàn)在你可以在程序任何位置調(diào)用square()函數(shù)來方便地繪制四方形了。

你還可以將這個函數(shù)放在循環(huán)中,來繪出更復(fù)雜的圖形。例如,畫一個正方形,右轉(zhuǎn)一定角度,畫另一個正方形,繼續(xù)右轉(zhuǎn)...這樣循環(huán)若干次。

下面的練習(xí)將繪制一個由正方形組成的有趣的圖形。要畫出這個圖形,需要你的小龜忙活一會兒,所以你可以通過調(diào)用speed()函數(shù)控制小龜?shù)乃俣取T趕hape('turtule')語句后面插入一行speed(0),使小龜移動的速度達(dá)到最快(speed(1)使小龜速度最慢)。當(dāng)然你可以調(diào)整speed()的參數(shù)。練習(xí)1-2:正方形組成的圓。寫程序,這個程序?qū)?0個正方形,每畫一個正方形后右轉(zhuǎn)5度。程序中要使用循環(huán)語句。運行結(jié)果如圖:

circle of squares

使用變量繪制圖形

現(xiàn)在為止我們的正方形大小都相同。想要不同大小的正方形,要改變小龜前進(jìn)的距離。要通過每次修改函數(shù)獲得不同的距離,那太麻煩了。我們用變量來解決這個問題,變量在Python中表示可以改變的值。變量與數(shù)學(xué)函數(shù)表達(dá)式中的x相似。

數(shù)學(xué)中的變量名字是一個字母,編程中你可以給變量取任何名字。類似與函數(shù),我建議你的變量名稱應(yīng)該是有意義的,便于記憶和理解。

函數(shù)中使用變量

定義函數(shù)的時候,可以將變量作為傳遞給函數(shù)的參數(shù)。例如,可以修改square()的定義,來畫不同尺寸的正方形,對myturtle.py修改如下:def square(sidelength):

for i in range(4):

forward(sidelength)

right(90)

這里我們在函數(shù)定義中增加了sidelength。現(xiàn)在你調(diào)用這個函數(shù)的時候,要在括號間傳遞一個值給函數(shù),這個值我們稱之為參數(shù)。傳遞的任何值都將作為sidelength的數(shù)值。例如,調(diào)用square(50)和square(80)將分別繪制邊長為50和80的正方形。

變量錯誤

調(diào)用函數(shù)的時候,如果函數(shù)定義中有參數(shù),而調(diào)用時未指明參數(shù),Python會報錯。如調(diào)用上面的函數(shù)square(),IDLE中會出現(xiàn)以下錯誤提示:TypeError: square() missing 1 required positional argument: 'sidelength'

這個錯誤提示我們?nèi)鄙倭艘粋€需要的參數(shù)(這兒是sidelength)。怎樣避免出現(xiàn)這種錯誤呢?我們可以在定義函數(shù)時給參數(shù)賦一個默認(rèn)值,例如這樣:def square(sidelength=100):

這里,我們給sidelength賦值100。現(xiàn)在我們調(diào)用square時如果填寫了參數(shù),會繪制邊長為我們填寫數(shù)值的正方形,如果我們沒有填寫,也不會報錯,會繪制邊長為100的正方形。我們可以這樣調(diào)用函數(shù):square(30)

square(50)

squre()

運行結(jié)果會是這樣:

1_func_params.gif

給函數(shù)參數(shù)設(shè)置缺省值,我們可以不同擔(dān)心調(diào)用時忘記填寫參數(shù)了。在編程中,我們稱之為讓程序變得健壯。練習(xí)1-3:繪制三角形。寫triangle()函數(shù),函數(shù)功能為繪制給定變長的三角形。

等邊三角形

多邊形是有多個邊的圖形。等邊三角形是多邊形的一種,有三條邊且變長相等。

triangle

等邊三角形有3個都為60度的內(nèi)角,你的數(shù)學(xué)老師肯定告訴過你,三角形內(nèi)角和為180度。

寫繪制三角形的函數(shù)

現(xiàn)在,讓我們用目前學(xué)到的知識畫出一個等邊三角形。因為每個內(nèi)角都是60度,我們可以將right()參數(shù)修改為60度,像下面這樣修改myturtle.py:def triangle(sidelength=100):

for i in range(3):

forward(sidelength)

right(60)

triangle()

保存,運行。你看到了什么?

triangle

我們沒看到三角形,看起來畫的好像是六邊形的一半。想想為什么?如果你是圖上的小龜,站在它的位置,向右轉(zhuǎn)60度,循環(huán)3次……是不是也會走出上圖的路徑。你應(yīng)該想到了,向右轉(zhuǎn),不應(yīng)該轉(zhuǎn)60度,而應(yīng)該轉(zhuǎn)180-60=120度。練習(xí)1-4:寫繪制多邊形的函數(shù)。函數(shù)名字為polygon,參數(shù)為一個整數(shù),函數(shù)功能是繪制多邊形,邊的條數(shù)為參數(shù)值。

改變變量的值

我們可以這樣改變變量的值:在每一個循環(huán)中讓變量的值遞增,結(jié)果是每次循環(huán)所畫的正方形比上一次大一些。例如我們使用length變量,我們用這個變量的值作為變長畫正方形,下一個循環(huán)中為length增加5:length = length + 5

這是一個賦值語句,length變量被賦予length原來的值加上5。打開IDLE,輸入以下語句:>>> radius = 10

上面我們創(chuàng)建了一個變量,其名字是radius,其值為10。任何時候你都可以重新給這個變量賦一個新值:>>> radius = 20

現(xiàn)在,變量radius中的值為20了。練習(xí)1-5:創(chuàng)建一個函數(shù),函數(shù)的功能為畫60個正方形,每畫一個正方形后旋轉(zhuǎn)5度,且邊長增加。初始邊長為5,每次增加5。結(jié)果應(yīng)該如圖所示:

總結(jié)

本文我們學(xué)習(xí)了使用Python的小龜模塊turtle和它的內(nèi)置函數(shù)forward()及right()。我們探索了使用這個兩個函數(shù)繪制復(fù)雜有趣的圖形。turtle是Python其中一個包,你可以訪問Python的官方網(wǎng)站https://python.org/,上面有turtle更全面的介紹。

本文我們還學(xué)校了如何定義自己的函數(shù),自定義函數(shù)可以讓我們實現(xiàn)代碼復(fù)用。我們還學(xué)習(xí)了for循環(huán)。練習(xí)1-6:星星的誕生。首先你要寫一個名為star的函數(shù),函數(shù)功能是繪制一個五角星,如圖:

star

,接下來,你需要寫另一個starSpiral()函數(shù),函數(shù)的作用是繪制旋轉(zhuǎn)的五角星,結(jié)果如下圖:

stars spiral

總結(jié)

以上是生活随笔為你收集整理的python绘制如下图形、小三角形边长20_在编程中发现数学之美——使用Python小龟绘制多边形...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: gai视频在线观看资源 | 波多野42部无码喷潮 | 日本在线中文字幕专区 | 91理论片 | 草视频在线观看 | 国产麻豆成人传媒免费观看 | 欧美精品午夜 | 狠狠丁香| 十八岁世界在线观看高清免费韩剧 | fc2ppv在线观看| 精品免费久久 | 农村少妇 | 奇米影视777四色 | 思思久久99 | 在线观看亚洲a | 亚洲精品资源在线 | 国产在线视频你懂的 | 亚洲精品综合久久 | 欧美日韩在线二区 | 一级特黄aaaaaa大片 | 成人在线视频网址 | 国产男女猛烈无遮挡免费视频 | 91久久人澡人人添人人爽欧美 | 激情综合小说 | 青青草原伊人 | 使劲插视频 | 依人综合网 | 成 年 人 黄 色 大 片大 全 | 真人一及毛片 | 激情综合网激情 | 日韩视频在线观看视频 | 99在线无码精品入口 | 久久精品天天中文字幕人妻 | 亚洲精品一线二线三线 | 黄色一级片av | 欧美一级片在线视频 | 性福利视频 | 伊人网综合视频 | 超碰婷婷 | 日本三级中文字幕在线观看 | 黄色av网站免费看 | 国产视频三区 | 国产精品理论片在线观看 | 色欲av无码精品一区 | 少妇又白又嫩又色又粗 | 欧美日韩国产专区 | 日本午夜电影 | 和漂亮岳做爰3中文字幕 | 免费看污视频的网站 | 欧美激情黑人 | 免费看片网站91 | 又爽又黄视频 | 超碰伦理 | 香蕉色综合 | 正在播放木下凛凛88av | 黑色丝袜吻戏亲胸摸腿 | 日韩国产91 | 欧美国产激情 | 国产精品第八页 | 催眠调教后宫乱淫校园 | 亚洲精品一二三区 | 亚洲777| 麻豆精品视频在线 | 欧美视频一区二区在线观看 | 中文字幕在线观看欧美 | 开心激情五月网 | 骚狐网站| 色欲久久久天天天综合网精品 | 国产精品v欧美精品v日韩精品 | 国产激情在线观看 | 国产精品第72页 | 亚洲欧美综合网 | 国产私人影院 | 最新黄色在线 | 涩涩视频在线播放 | 国产又色又爽无遮挡免费动态图 | 久久免费资源 | 午夜91视频 | 国产精品久久久久久久久免费看 | 人妻丰满熟妇av无码久久洗澡 | 韩国19主播内部福利vip | 色偷偷888欧美精品久久久 | 男人天堂黄色 | 亚洲第一精品在线 | 国产av无码国产av毛片 | 一本一道久久综合狠狠老精东影业 | 免费观看久久久 | 解开人妻的裙子猛烈进入 | 一级黄色片免费播放 | 男生插女生的网站 | 国内自拍真实伦在线观看 | 92久久| 中国女人内谢69xxxxⅹ视频 | 精品亚洲国产成人av制服丝袜 | 国产视频精品视频 | 亚洲第一女人av | 全程粗话对白视频videos | 亚洲AV无码久久精品国产一区 | 午夜伦理在线观看 |