說明:學(xué)習(xí)《Python語言程序設(shè)計(jì)基礎(chǔ)(第2版)》(高等教育出版社)筆記,案例來自教材。
模塊編程
1. 調(diào)用函數(shù)庫(kù)和函數(shù)
-
import <庫(kù)名>
<函數(shù)庫(kù)>.<函數(shù)>(<函數(shù)參數(shù)>)
2.from <庫(kù)名> import <函數(shù)名,函數(shù)名,函數(shù)名……>
或者from <庫(kù)名> import * ,表示調(diào)用函數(shù)庫(kù)中所有函數(shù)
<函數(shù)名>(<函數(shù)參數(shù)>)
turtle數(shù)據(jù)庫(kù)函數(shù)解析
turtle函數(shù)庫(kù)是一只小海龜進(jìn)行圖形繪制,初始位置位于畫布正中央,坐標(biāo)(0,0),方向朝向正坐標(biāo)。
案例
#e2.1 Drawpython.py
import turtle
turtle.setup (650,350,200,200)
turtle.penup ()
turtle.fd (-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor(0,0,0)
turtle.seth(-40)
for i in range (5):
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)
1. 繪圖坐標(biāo)體系
turtle.setup (width, height, startx, starty)
width 窗口寬度,整數(shù)表示像素值,小數(shù)表示窗口寬度和屏幕的比例。
height 窗口高度,整數(shù)表示像素值,小數(shù)表示窗口寬度和屏幕的比例。
startx 窗口左側(cè)與屏幕左側(cè)的像素距離,如果值為none,窗口位于屏幕水平中央。
starty 窗口左側(cè)與屏幕頂部的像素距離,如果值為none,窗口位于屏幕垂直中央。
2. 畫筆控制函數(shù)
- turtle.penup () 無參,提起畫筆,移動(dòng)不進(jìn)行繪制,另起一個(gè)開始繪制。
turtle.pendown () 無參,放在畫筆,邊移動(dòng)邊繪制。 - turtle.pensize(width) 設(shè)置畫筆寬度,無參數(shù)時(shí),返回當(dāng)前畫筆寬度。
- turtle.pencolor() 設(shè)置畫筆顏色
參數(shù)的三種形式:
- turtle.pencolor(colorstring)
例如:turtle.pencolor("purple") - turtle.pencolor(r, g, b)
r, g, b即為RGB數(shù)值。
如果用RGB數(shù)值,需要先調(diào)用turtle.colormode(255),再執(zhí)行turtle.pencolor(r,g,b),否則會(huì)報(bào)錯(cuò)。 - turtle.pencolor()
返回當(dāng)前畫筆顏色
3.形狀繪制函數(shù)
- turtle.forward(distance)/turtle.fd(distance)
distance表示小海龜向當(dāng)前行進(jìn)方向前進(jìn)距離的像素值,當(dāng)值為負(fù)數(shù)時(shí),則表示向相反方向前進(jìn)。 -
turtle.seth(to_angle) 改變畫筆方向,逆時(shí)針為正值。該值為絕對(duì)方向體系,與小海龜現(xiàn)在所指方向無關(guān)。
角度坐標(biāo)系 - turtle.circle(radius, extent=None)
根據(jù)半徑radius繪制extent角度的弧形。
radius半徑,值為整數(shù)時(shí),半徑在海龜左側(cè),值為負(fù)數(shù)時(shí),半徑在海龜右側(cè)。
extent繪制角度,無參時(shí)繪制整圓。
4.補(bǔ)充一個(gè)循環(huán)語句
for i in range (循環(huán)條件):
<語句塊>
思考題:
用turtle庫(kù)繪制9個(gè)同心圓
import turtle
for i in range (9):
turtle.penup()
turtle.fd(20)
turtle.pendown()
turtle.seth(90)
turtle.circle(20*i)
turtle.seth(0)
