您現在的位置是:首頁 > 舞蹈首頁舞蹈

青少年Python程式設計系列19:初識Python的海龜庫

由 Phoenix鳳城老人 發表于 舞蹈2023-01-27
簡介left(90)turtle

停止的單詞是什麼

前面我們已經學完了Python的所有資料型別和程式的結構。從這節課開始,我們來學習Python的海龜庫。

海龜(turtle)庫中有一支神奇的畫筆,從繪畫窗的正中心開始,根據指令在畫布上游走。我們可以自己控制畫筆的方向、顏色、粗細,從而繪製出多彩的圖形。我們從這節課開始講turtle庫中基本的函式使用,讓我們也用python畫出屬於自己的一幅畫吧。

一、瞭解笛卡爾座標系和畫素的概念

1。1 笛卡爾座標系

在使用海龜庫畫圖的過程中,我們需要使用座標來表示畫布中一個點的位置。因此,我們需要對座標系有一個初步的瞭解。在海龜庫的畫布中,我們使用的是笛卡爾座標系,也叫平面直角座標系。

兩條數軸分別置於水平位置與垂直位置,取向右與向上的方向分別為兩條數軸的正方向。水平的數軸叫做x軸(x-axis)或橫軸,垂直的數軸叫做y軸(y-axis)或縱軸,x軸y軸統稱為座標軸,它們的公共原點O稱為直角座標系的原點(origin),以點O為原點的平面直角座標系記作平面直角座標系xOy。

青少年Python程式設計系列19:初識Python的海龜庫

在海龜庫的畫布中,畫布的

最中間

的位置是座標軸的

原點

。畫布上任何一個點的位置,都可以使用座標表示。表示方法為(x, y)。原點的座標是(0, 0)

青少年Python程式設計系列19:初識Python的海龜庫

上圖中,A點的座標是(3, 2),B點的座標是(-2, 1),C點座標是(-1, -2),D點座標是(1, -3)。

1。2 什麼叫畫素

我們都學過長度的單位,有米、分米、釐米、毫米等等。這些長度單位在我們電腦螢幕上是不適用的。為什麼呢?因為我們每個人使用的計算機的螢幕大小都是不一樣的。大到電視機,小到手機螢幕。

如果用釐米為單位,同樣是向前10釐米對於電視機螢幕來說才走了一點點,對於手機螢幕來說已經不夠用了。

計算機的顯示器是由一個個方點組成的,每一個方點的長度叫做1畫素(pixcel,簡稱px)。我們使用畫素作為長度的單位。

二、如何匯入海龜庫

海龜(turtle)庫是Python中的一個繪圖用的函式庫。在Python中匯入一個庫,需要使用import語句。匯入海龜庫的語句格式為:

import turtle

在程式中,要使用

turtle.

開頭呼叫turtle庫中的物件和方法。 為了程式中書寫簡便,我們可以加上as語句定義一個別名。

import turtle as t

使用了別名後,在程式中,只需要使用 t。 開頭呼叫turtle庫中的物件和方法。

還有一種呼叫方式,是直接呼叫庫中所有的物件和方法,函式名稱前不再需要寫任何東西。

from turtle import *

三、基本畫筆控制函式

我們先想一下,如果說給你一張紙和一支筆,畫線條的時候你會有哪些操作?使用計算機畫線條的操作基本上跟人類區別不大,無非就是落筆、抬筆、筆向前移動或者向後移動、轉動方向。那我們看一下基本畫筆控制的函式:

青少年Python程式設計系列19:初識Python的海龜庫

我們在畫圖時,畫筆的位置位於

座標原點

(畫布的最中央),畫筆的角度為

水平向右

,畫筆是

落筆狀態

。在畫布中,我們可以看到海龜的箭頭,箭頭的位置就是當前畫筆的位置,箭頭指向的方向就是畫筆當前的角度。

下面,我們來看看各種函式的具體使用吧。

3。1 forward()函式

畫筆向前移動一定的距離,使用方法:

turtle。forward(distance)

使用示例:

import turtleturtle。forward(100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

3。2 backward()函式

畫筆向後移動一定的距離,使用方法:

turtle。backward(distance)

使用示例:

import turtleturtle。backward(100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

3。3 left()函式和right()函式

left()函式是畫筆向左轉一定角度,right()函式是畫筆向右轉一定角度,函數里的引數是角度。使用的方法一樣:

turtle。left(angle)turtle。right(angle)

使用示例:

import turtleturtle。forward(100)turtle。left(90)turtle。forward(100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

import turtleturtle。forward(100)turtle。right(90)turtle。forward(100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

3。4 goto()函式

goto()函式的作用是將畫筆移動到指定的座標。無論畫筆當前轉向什麼角度,使用直線直接走到對應的座標。使用方法如下:

turtle。goto(x, y)

這裡的引數x和y表示座標軸的座標值。

使用示例:

import turtleturtle。goto(100, 100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

3。5 penup()和pendown()函式

看單詞就可以看出,它們分別是抬筆和落筆。函式中沒有任何引數。使用方法:

turtle。penup()turtle。pendown()

使用例項:

import turtleturtle。forward(50)turtle。penup()turtle。forward(100)turtle。pendown()turtle。forward(50)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

四、畫筆屬性設定基本函式

前面我們雖然畫出了線條,但是都是一根黑色的細線,如果想要更加美觀,就得使用畫筆屬性設定的函數了。我們先學習三種基本的畫筆屬性的函式:

青少年Python程式設計系列19:初識Python的海龜庫

下面我們來看這幾個函式的具體使用吧:

4。1 pensize()函式

pensize()函式可以設定畫筆的粗細,在未設定粗細的情況下,預設寬度為1,函式格式:

turtle。pensize(width)

我們看看具體的例子吧:

import turtleturtle。forward(100)turtle。pensize(10)turtle。forward(100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

4。2 pencolor()函式

pencolor()函式可以設定畫筆的顏色,在未設定的情況下,畫筆預設顏色為黑色。函式格式:

turtle。pencolor(color)

這裡的顏色目前階段我們只要使用顏色英文單詞的字串就可以了。以後講了顏色的高階設定以後還有更多的值可以寫。我們看看具體的例子:

import turtleturtle。pensize(5)turtle。pencolor(“red”)turtle。forward(100)turtle。pencolor(“blue”)turtle。forward(100)turtle。done()

青少年Python程式設計系列19:初識Python的海龜庫

4。3 speed()函式

speed()函式的作用是控制畫圖的速度,函式的格式為:

turtle。speed(speed)

引數speed的取值範圍是0~10。

最慢為1,隨著數字變大,速度越來越快

。有一個特殊的值:

速度0為最快

示例程式碼:

import turtleturtle。speed(1)turtle。forward(50)turtle。speed(10)turtle。forward(50)turtle。done()

大家可以複製程式碼執行試一下。程式碼執行的過程中注意觀察畫筆執行的速度。

五、turtle庫的其他常用函式

5。1 hideturtle()函式

我們前面在試各種函式時會發現,我們都圖畫完後,畫筆還在螢幕上。如果最後生成一個作品,上面多一個畫筆確實不好看。我們當然希望把它給隱藏了。只要使用hideturtle()函式就可以了。使用方法:

turtle。hideturtle()

5。2 done()函式

前面的每一個例子中,我們都在使用它。最後我們講一下它的作用:

暫停程式,停止畫筆繪製,但繪圖窗體不關閉,直到使用者關閉Python Turtle圖形化視窗為止。使用方法:

turtle。done()

這個程式碼放在turtle畫圖的最後一行,如果後面還有程式碼將

不會再執行

。它最大的作用是阻止視窗關閉,大家可以試一下如果沒有這一行,圖畫完後會怎樣。

六、本節課函式應用例項演示

題目要求:使用turtle繪製一個邊長為100、線條寬度為5、線條顏色為綠色的等邊三角形。

題目分析:等邊三角形的三條邊相等,內角是60°。我們先繪製一條線,內角是60°,那我們畫筆要旋轉120°。線條的寬度和線條的顏色在繪圖之前先設定好。

程式碼如下:

import turtle as tt。pensize(5)t。pencolor(“green”)t。forward(100)t。left(120)t。forward(100)t。left(120)t。forward(100)t。hideturtle()t。done()

以上程式碼可以按照題目的要求繪製出等邊三角形了。但是我們想一下,三個邊的操作都都是一樣的,我們為什麼不能用迴圈語句來書寫呢?我們可以最佳化一下程式碼:

import turtle as tt。pensize(5)t。pencolor(“green”)for i in range(3): t。forward(100) t。left(120)t。hideturtle()t。done()

青少年Python程式設計系列19:初識Python的海龜庫

七、課後思考題

1、繪製一個長為300,寬為200的長方形,線條寬度為4,長的線條為粉紅色、寬的線條為紫色。

2、繪製一個五角星,每條線的長度為150,線條寬度為2,線條顏色為橙色。

3、繪製兩條長度為200的線段,兩條線的間隔為100,上面一條線顏色為棕色、下面一條線顏色為黃色,兩條線的寬度都為10。

八、上節課思考題答案

1、參考答案:

score = [(98, 97,96), (79,98,97), (90,96,97), (99,90,92), (93,98,91), (98,99,97), (89,95,87), (97,67,89)]chinese = [] # 語文成績math = [] # 數學成績english = [] # 英語成績total = [] # 總成績for i in score: chinese。append(i[0]) math。append(i[1]) english。append(i[2]) total。append(sum(i))print(“語文平均分:”, sum(chinese) / len(chinese))print(“語文最高分:”, max(chinese))print(“語文最低分:”, min(chinese))print(“數學平均分:”, sum(math) / len(math))print(“數學最高分:”, max(math))print(“數學最低分:”, min(math))print(“英語平均分:”, sum(english) / len(english))print(“英語最高分:”, max(english))print(“英語最低分:”, min(english))print(“每位同學的總成績:”, total)

2、參考答案:

for i in range(2, 101): #先取100以內的數字(range包前不包尾) for j in range(2, i): #再取小於第一次取的數 if i % j == 0: #第一次(較大)的數 除以 第二次(較小)的數 break #如果取餘為0表示j是i的因子,捨去,結束本次i所在數的所有迴圈,用break else: print(i) #無法整除所有j,則無因子,符合質數的概念,輸出

3、參考答案

a = int(input(“第一個數:”))b = int(input(“第二個數:”))# 無法確定輸入的數哪個大,先要判斷大小if a < b: xiao = a da = belse: da = a xiao = bn = 0 #求和用for i in range(xiao, da + 1): #含頭不含尾,大的數要+1 if i % 3 == 0: continue #能被3整除的略過 n += iprint(n)