turtle 庫.繪圖庫
#使用 import 保留字對turtle 庫引用有如下三種方法:
以畫直徑爲200的圓爲例
import turtle
turtle.circle(200)
from turtle import*
circle(200)
import turtle as t #保留字as 的作用是將turtle 庫給予別名t
t.circle(200)
#窗體函數
turtle.setup(width,height,startx,starty)
作用:設置主窗體的大小和位置參數
- width:窗口寬度,如果值是整數,表示像素值,如果值是小數,表示窗口寬度與屏幕的比例
- height:窗口高度,如果值是整數,表示像素值,如果值是小數,表示窗口高度與屏幕的比例
- startx:窗口左側與屏幕左側的像素距離,如果值是None,窗口位於屏幕水平中央
- starty:窗口頂部與屏幕頂部的像素距離,如果值是None,窗口位於屏幕垂直中央
畫筆狀態函數
函數 | 描述 |
---|---|
pendowm() | 放下畫筆 |
penup() | |
pensize(width) | 設置畫筆線條爲指定粗細大小 |
color() | 設置畫筆顏色 |
begin_fill() | 填充圖形前,調用該方法 |
end_fill() | 填充圖形結束 |
filling() | 返回填充的狀態,Ture爲填充,False爲未填充 |
clear() | 清除當前窗口,但不改變當前畫筆位置 |
reset() | 清除當前窗口,並重置位置等狀態爲默認值 |
screensize() | 設置畫布的長與寬 |
畫筆的移動
函數 | 描述 |
---|---|
forward() | 沿着當前距離前進指定距離 |
backward() | 沿着當前距離後退指定距離 |
right(angle) | 向右旋轉angle角度 |
left(angle) | 向左旋轉angle角度 |
goto(x,y) | 移動到絕對座標(x,y)處) |
setx() | 將當前x軸移動到指定位置 |
sety() | 將當前y軸移動到指定位置 |
setheading(angle) | |
home() | 設置當前畫筆位置爲原點,朝向東 |
circle(radius,e) | 繪製一個指定半徑r和角度e的圓或弧形 |
dot(r,color) | 繪製一個指定半徑r和顏色color的圓點 |
updo() | 撤銷畫筆最後一步動作 |
speed() | 設置畫筆繪製速度,參數在0-10之間 |
turtle.seth()函數,turtle.setheading(angle):設置當前朝向爲angle角度,該角度爲絕對方向角度值,絕對方向是與出發方向的偏移,其他位置,可以做與出發點的平行線
畫一個三角形爲例:
import turtle
for i in range(3):
turtle.seth(i*120)
turtle.fd(100)
#畫一個五角星
import turtle
turtle.pensize(5)
turtle.pencolor("green")
turtle.fillcolor ("red")
turtle.begin_fill ()
for i in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
#畫一個六邊形
import turtle
turtle.pensize(3)
turtle.penup()
turtle.goto(34,67)
turtle.pendown()
turtle.color ("red")
turtle.begin_fill ()
turtle.circle(40,steps=6)
turtle.end_fill()
random庫.隨機庫
- 使用random庫,主要目的是生成隨機數
- 這個庫提供了不同類型的隨機函數,其中最基本的隨機函數是random.random(),它生成的是0-1之間的隨機數
>>> from random import*
>>> random()
0.31984313000170117
>>> random()
0.5245132159956171
隨機庫中常用的函數(利用它可以生成0-1之外的隨機數)
函數 | 描述 |
---|---|
seed(a=None) | 初始化隨機種子,默認值爲 |
randint(a,b) | 生成[a,b] 之間的整數 |
getrandbits(k) | 生成一個k比特長度的隨機整數 |
randrange(start,stop[,step]) | 生成一個[start,stop]之間以step爲步驟的隨機數 |
uniform(a,b) | 生成[a,b]之間的隨機小數 |
choice(seq) | 從序列類型(例如:列表)中隨機返回一個元素 |
shuffle(seq) | 將序列類型中的元素隨機排列,返回打亂後的序列 |
sample(pop,k) | 從pop類型中隨機選取k個元素,以列表類型返回 |
#隨機生成一個6位數驗證碼
import random
lis=[]
for i in range(6):
num=random.randrange(0,10)
lis.append(str(num))
s="".join(lis)
print(s)
輸出結果爲:
596033
注意:
區別:randint 左右閉區間,randrange左閉右開
共性:輸出都是整數
#隨機生成一個6位驗證碼,包含數字和字母
import random
lis=[]
for i in range(6):
b=random.randrange(0,10)
if b<5:
num1=random.randrange(65,91)
lis.append(chr(num1))
else:
num=random.randrange(0,10)
lis.append(str(num))
s="".join(lis)
print(s)
輸出結果爲:
4016M6
注:
random生成一個[0.0,1.0)之間的隨機小數
seed 初始化隨機種子
randint(a,b)生成[a,b]之間的隨機整數