【筆記】《python語言程序設計》—python基本圖形繪制

一、前言

學習就是一個不斷的自下而上,自上而下的過程。

前段時間,學著用python實現網站的數據爬取,隱約get到python的一些語法和用法,感覺就是語法不難,關鍵在于解決問題的思維。

這是需求驅動后的學習。接下來,就需要對python進行系統地了解。

很早之前搜知乎的時候,就搜到MOOC上的一門《python語言程序設計》課程,講得很好,而且,我還下載了課件,溜了一遍,感覺就挺有趣的。

趁著有了實戰經驗,就把這門入門課刷了一遍。果然是門好課!很適合小白入門,并系統學習,整個教學過程循序漸進,深入淺出,提綱挈領,很有意思!

課程是北京理工大學嵩天老師的《python語言程序設計》課程,現在已經開了11次課了。課程每個小視頻短則幾分鐘,最長也不超過20分鐘,不容易勸退。每章講解有復習回顧及小結,在平臺python123上有每章的練習和測試,直接反饋結果,激發繼續學下去的興趣。

個人感覺,老師說話速度慢了些,調成了2倍速播放,然后,花了大約3天的時間,把所有的視頻,課件,練習和測試都刷了一遍,感覺對python的了解更系統了!

趁熱打鐵,把每章的知識點和練習、測試再進行整理回顧一下。

以下內容均來自課程:《python語言程序設計》平臺python123,感興趣的看課程視頻,親自練習,效果更好~

二、知識點

1. 深入理解Python語言

  1. 計算機技術的演進過程:現在為新計算時代

    年份 時代 問題
    2017-至今 人工智能時代 人類的問題
    2008-2016 復雜信息系統時代 數據問題
    1981-2008 網絡和視窗時代 交互問題
    1946-1981 計算機系統結構時代 計算能力問題
  2. 不同編程語言的初心和適用對象

    編程語言 學習內容 語言本質 解決問題 適用對象
    C 指針、內存、數據類型 理解計算機系統結構 性能 計算機類專業

| Java | 對象、跨平臺、運行時 | 理解主客體關系 | 跨平臺 | 軟件類專業 |
| C++ | 對象、多態、繼承 | 理解主客體關系 | 大規模程序 | 計算機類專業 |
| VB | 對象、按鈕、文本框 | 理解交互邏輯 | 桌面應用 | 不確定 |
| Python | 編程邏輯、第三方庫 | 理解問題求解 | 各類問題 | 所有專業 |

  1. Python語言的特點

    ①Python語言是通用語言、腳本語言、開源語言、跨平臺語言、多模型語言;

    ②Python特點與優勢:語法簡潔(C代碼量的10%;強制可讀性;較少的底層語法元素;多種編程方式;支持中文字符);生態高產(15萬第三方庫;快速增長的計算生態;避免重復造輪子;開放共享;跨操作系統平臺);

    ③“超級語言”的誕生:機器語言→匯編語言→高級語言→超級語言;python是唯一的“超級語言”;

2. 實例2:Python蟒蛇繪制

蟒蛇繪制.png
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor('purple')
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()

3. turtle庫的使用

  1. turtle庫基本介紹

    ①turtle(海龜)庫:是turtle繪圖體系的Python實現;Python語言的標準庫之一;入門級的圖形繪制函數庫;

    ②turtle繪圖體系:1969年誕生,主要用于程序設計入門;

    ③標準庫:隨解釋器直接安裝到操作系統中的功能模塊;

    ④第三方庫:需要經過安裝才能使用的功能模塊;

  2. turtle繪圖窗體布局

turtle的繪圖窗體.png
turtle的繪圖窗體2.png
  1. turtle空間坐標體系
turtle空間坐標體系1.png
turtle空間坐標體系2.png
  1. turtle角度坐標體系
turtle角度坐標體系1.png
turtle角度坐標體系2.png
  1. RGB色彩體系

    ①RGB每色取值范圍0-255整數或0-1小數

    ②默認采用小數值,可切換為整數值:turtle.colormode(mode),其中mode包括1(RGB小數值模式);255(RGB整數值模式);

4. turtle程序語法元素分析

  1. 庫的引用與import:import <庫名>import <庫名> as <庫別名>``from <庫名> import <函數名>; from <庫名> import *;

  2. turtle畫筆控制函數:

    ①. penup(): 別名pu(), 抬起畫筆,海龜在飛行;
    ②. pendown(): 別名pd(), 落下畫筆,海龜在爬行;
    ③. pensize(): 別名width(), 畫筆寬度,海龜的腰圍;
    ④. pencolor(): 畫筆顏色,海龜在涂裝;例如,turtle.pencolor(‘purple’), turtle.pencolor(0.63,0.13,0.94), turtle.pencolor((0.63,0.13,0.94))

  3. turtle運動控制函數:控制海龜走直線還是走曲線

    ①. fd(d): 別名forward(d), 向前行進,海龜走直線;d為行進距離,可以為負數;

    ②. circle(r, extent=None): 根據半徑繪制extent角度的弧形;r為默認圓心再海龜左側r距離的位置;extent為繪制角度,默認是360度整圓;

運動控制函數.png
  1. turtle方向控制函數:控制海龜面對方向

    ①. 絕對角度:turtle.setheading(angle), 別名turtle.seth(angle),改變行進方向,海龜走角度;

seth().png

②. 海龜角度:turtle.left(angle),海龜向左轉;turtle.right(angle),海龜向右轉;angle為海龜當前行進方向上旋轉的角度;

  1. 循環語句:按照一定次數循環執行一組語句;

  2. range()函數:產生循環計數序列;range(N):產生0到N-1的整數序列,共N個;range(M,N):產生M到N-1的整數序列,共N-M個;

循環語句.png

三、練習

1. 實例2: Python蟒蛇繪制

同上

2. turtle正方形繪制

描述:使用turtle庫,繪制一個正方形。

正方形.png
import turtle as t
t.setup(900,900)
t.pensize(5)
for i in range(0,4):
    t.fd(200)
    t.right(90)
t.fd(200)
t.done()

3. turtle六邊形繪制

描述:使用turtle庫,繪制一個六邊形。

六邊形.png
import turtle as t
t.setup(900,900)
t.penup()
t.fd(-200)
t.pendown()
t.pensize(5)
for i in range(0,6):
    t.fd(200)
    t.left(60)
t.done()

4. turtle疊邊形繪制

描述:使用turtle庫,繪制一個疊邊形,其中,疊邊形內角為100度。

疊邊形.png
import turtle as t
t.setup(900,900)
t.pensize(5)
for i in range(0,9):
    t.fd(200)
    t.left(80)
t.done()

5. turtle風輪繪制

描述:使用turtle庫,繪制一個風輪效果,其中,每個風輪內角為45度,風輪邊長150像素。

提示:turtle.goto(x,y)函數,能夠將turtle畫筆移動到坐標(x,y)

風輪.png
import turtle as t
t.setup(500,500)
t.pensize(4)
t.goto(0,150)
t.circle(-150,45)
t.goto(0,0)
t.right(45)
t.goto(150,0)
t.circle(-150,45)
t.goto(0,0)
t.right(45)
t.goto(0,-150)
t.circle(-150,45)
t.goto(0,0)
t.right(45)
t.goto(-150,0)
t.circle(-150,45)
t.goto(0,0)

四、測試

1.選擇題

  1. 哪個選項不能正確引用turtle庫進而使用setup()函數?

    A import setup from turtle

    B from turtle import*

    C import turtle as t

    D import turtle

import只有三種使用方法,以turtle庫為例:

import turtle

from turtle import setup 或 from turtle import *

import turtle as t (其中t是別名,可以更換其他名稱)

  1. 關于turtle庫,哪個選項的描述是錯誤的?

    A turtle坐標系的原點默認在屏幕左上角

    B turtle庫是一個直觀有趣的圖形繪制函數庫

    C turtle庫最早成功應用于LOGO編程語言

    D turtle繪圖體系以水平右側為絕對方位的0度

turtle坐標系的原點默認在窗體正中間

  1. 哪個選項是turtle繪圖中角度坐標系的絕對0度方向?

    A 畫布正下方 B 畫布正右方 C 畫布正上方 D 畫布正左方

坐標系類似這樣,角度坐標系的絕對0度方向是右側

  1. 哪個選項是下面代碼的執行結果?

    turtle.circle(-90,90)
    

    A 繪制一個半徑為90像素的弧形,圓心在小海龜當前行進的左側

    B 繪制一個半徑為90像素的整圓形

    C 繪制一個半徑為90像素的弧形,圓心在小海龜當前行進的右側

    D 繪制一個半徑為90像素的弧形,圓心在畫布正中心

circle(x, y) 表示 以x長度為半徑,y為角度,當前方向左側x出為圓心,畫圓。其中x和y都可以是負數,相應取反。

  1. 關于turtle庫繪圖函數,哪個選項的描述是錯誤的?

    A turtle.seth(to_angle)函數的作用是設置小海龜當前行進方向為to_angle,to_angle是角度的整數值

    B turtle.circle(radius, extent=None)函數的作用是繪制一個橢圓形,extent參數可選

    C turtle.fd(distance)函數的作用是向小海龜當前行進方向前進distance距離

    D turtle.pensize(size)函數的作用是改變畫筆的寬度為size像素

circle()函數不能繪制橢圓形。

  1. 關于turtle庫的畫筆控制函數,哪個選項的描述是錯誤的?

    A turtle.width()和turtle.pensize()都可以用來設置畫筆尺寸

    B turtle.colormode()的作用是設置畫筆RGB顏色的表示模式

    C turtle.pendown()作用是落下畫筆,并移動畫筆繪制一個點

    D turtle.penup()的別名有turtle.pu(),turtle.up()

turtle.pendown()只是放下畫筆,并不繪制任何內容。

  1. 哪個選項不能改變turtle畫筆的運行方向?

    A left() B bk() C right() D seth()

bk()只能后退,但不改變方向,"后退"不是"轉向"。

  1. 哪個選項所列保留字能夠實現對一組語句的循環執行?

    A while和def B if和else C for和in D range()

循環相關保留字是:for..in和while,但def用于定義函數,不相關。

  1. 哪個選項能夠使用turtle庫繪制一個半圓形?

    A turtle.circle(100) B turtle.circle(100, -180)

    C turtle.circle(100, 90) D turtle.fd(100)

circle(x,y)函數的用法,繪制半圓,第二個參數y是180的奇數倍。

  1. 哪個選項對turtle.done()的描述是正確的?

    A turtle.done()放在代碼最后,是turtle繪圖的必要要求,表示繪制完成 B turtle.done()用來隱藏turtle繪制畫筆,一般放在代碼最后

    C turtle.done()用來停止畫筆繪制,但繪圖窗體不關閉

    D turtle.done()用來暫停畫筆繪制,用戶響應后還可以繼續繪制

建議在每個turtle繪圖最后增加turtle.done()。

2.程序設計題

  1. turtle八邊形繪制

描述:使用turtle庫,繪制一個八邊形。

八邊形.png
import turtle as t
t.pensize(2)
for i in range(0,8):
    t.fd(100)
    t.left(45)
  1. turtle八角圖形繪制

描述:使用turtle庫,繪制一個八角圖形。

八角圖形.png
import turtle as t
t.pensize(2)
for i in range(0,8):
    t.fd(150)
    t.left(135)

【筆記】《python語言程序設計》—Python基本語法元素

【筆記】《python語言程序設計》—Python基本圖形繪制

【筆記】《python語言程序設計》——基本數據類型

【筆記】《python語言程序設計》——程序的控制結構

【筆記】《python語言程序設計》——函數和代碼復用

【筆記】《python語言程序設計》——組合數據類型

【筆記】《python語言程序設計》——文件和數據格式化

【筆記】《python語言程序設計》——程序設計方法學

【筆記】《python語言程序設計》——python計算生態概覽

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容