在1966年,Seymour Papert和Wally Feurzig發明了一種專門給兒童學習編程的語言——LOGO語言,它的特色就是通過編程指揮一個小海龜(turtle)在屏幕上繪圖。
海龜繪圖(Turtle Graphics)后來被移植到各種高級語言中,Python內置了turtle庫,基本上100%復制了原始的Turtle Graphics的所有功能。
我們來看一個指揮小海龜繪制一個長方形的簡單代碼:
# 導入turtle包的所有內容:
from turtle import *
# 設置筆刷寬度:
width(4)
# 前進:
forward(200)
# 右轉90度:
right(90)
# 筆刷顏色:
pencolor('red')
forward(100)
right(90)
pencolor('green')
forward(200)
right(90)
pencolor('blue')
forward(100)
right(90)
# 調用done()使得窗口等待被關閉,否則將立刻關閉窗口:
done()
從程序代碼可以看出,海龜繪圖就是指揮海龜前進、轉向,海龜移動的軌跡就是繪制的線條。要繪制一個長方形,只需要讓海龜前進、右轉90度,反復4次。
調用width()函數可以設置筆刷寬度,調用pencolor()函數可以設置顏色。更多操作請參考turtle庫的說明。
繪圖完成后,記得調用done()函數,讓窗口進入消息循環,等待被關閉。否則,由於Python進程會立刻結束,將導致窗口被立刻關閉。
turtle包本身只是一個繪圖庫,但是配合Python代碼,就可以繪制各種復雜的圖形。例如,通過循環繪制5個五角星:
from turtle import *
def drawStar(x, y):
pu()
goto(x, y)
pd()
# set heading: 0
seth(0)
for i in range(5):
fd(40)
rt(144)
for x in range(0, 250, 50):
drawStar(x, 0)
done()

