一、基本使用
turtle.write是Python turtle庫的一個函數,用於在turtle圖形窗口中輸出字符串。它與turtle庫中的其他函數一樣,都需要導入turtle庫後才能使用。
import turtle
turtle.write("Hello, world!")
turtle.done()
這段代碼首先導入turtle庫,然後使用turtle.write輸出字符串”Hello, world!”,最後調用turtle.done()函數進入主循環(保持窗口顯示)。在輸出的字符串前面會自動添加一個小三角形圖標。
在默認情況下,turtle.write函數輸出的字符串位於當前海龜的位置,並且當前海龜的朝向即是字符串最後一個字符的朝向。如果想要改變字符串的位置或朝向,可以在函數參數中指定相應的參數。
二、控制字體和顏色
turtle.write函數還支持設定輸出字符串的字體、字號和顏色等屬性。字體和字號使用字體名稱和像素大小來表示,顏色使用RGB格式或字符串顏色名(如”red”)來表示。
import turtle
turtle.write("Hello, world!", font=("Arial", 16, "normal"), align="center", move=True)
turtle.done()
這段代碼改變了輸出字符串的字體、大小、顏色和位置。其中font參數指定字體為Arial,大小為16像素,樣式為normal(即普通樣式);align參數指定字符串居中對齊;move參數指定輸出字符串時是否移動當前海龜。
三、輸出HTML標籤
turtle.write函數還可以輸出一些HTML標籤,如
、
等。輸出的HTML標籤需要使用特殊的轉義符”<“和”>”,否則turtle庫會將它們解析成普通的字符串。
import turtle
turtle.write("<h1>Hello, world!</h1><p>This is a sample paragraph.</p>", align="center")
turtle.done()
這段代碼向輸出字符串中添加了一個h1標籤和一個p標籤,分別用於輸出標題和段落。注意,輸出的標籤使用了轉義符”<“和”>”包裹,以避免Turtle庫將它們解析成字符串。輸出字符串居中對齊。
四、設置背景圖像
調用turtle.bgpic()函數可以向圖形窗口添加一個背景圖像。背景圖像可以是一個圖像文件(如PNG、JPEG等格式),也可以是一個由turtle編織的圖案。
import turtle
turtle.bgpic("background.png")
turtle.write("Hello, world!", font=("Arial", 16, "normal"), align="center")
turtle.done()
這段代碼向圖形窗口添加了一個名為background.png的背景圖像,並在其中輸出了字符串”Hello, world!”。在默認情況下,字符串會顯示在背景圖像上,但可以使用screen.tracer(0)函數禁用渲染效果,只顯示輸出字符串。
五、創建文本框
turtle.write函數還支持創建一個文本框,用於用戶輸入字符串或編輯文本。創建文本框需要使用turtle.textinput()函數和turtle.text()函數。
import turtle
turtle.write("Click the screen to enter text...", align="center")
turtle.onscreenclick(lambda x, y: turtle.write(turtle.textinput("Enter text", "Enter some text: "), align="center"))
turtle.done()
這段代碼為turtle圖形窗口創建了一個事件處理函數。當用戶單擊窗口的任意位置時,事件處理函數會創建一個文本框,要求用戶輸入一段文本。用戶輸入完成後,文本框會自動關閉,輸入的字符串會顯示在窗口中央。
六、綜合應用
下面是一個綜合應用turtle.write函數的例子,它使用了turtle庫的一些其他函數來創建一個複雜的圖形和動畫效果。
import turtle
def draw_star(t, size):
angle = 120
for side in range(5):
t.forward(size)
t.right(angle)
t.forward(size)
t.right(72 - angle)
def flash_star(t, size):
for _ in range(16):
t.color("gold")
draw_star(t, size)
t.color("white")
draw_star(t, size / 2)
screen = turtle.Screen()
turtle.speed(0)
screen.bgcolor("black")
flash_star(turtle, 100)
turtle.write("<h1>Starburst!</h1>", font=("Arial", 48, "bold"), align="center", move=True)
turtle.done()
這段代碼部分參考了Peter Wentworth的書籍「Think Python」,用於繪製一顆五角星,並在窗口中心閃爍顯示。首先創建了一個事件處理函數,它調用了draw_star函數來繪製一個五角星圖形,並使用flash_star函數來製造閃爍效果。
在函數末尾使用turtle.write函數輸出了一個h1標籤,位於閃爍星圖形之上。輸出的標籤使用了居中對齊,加粗樣式和大型字體。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/200598.html