Python Turtle ile ekrana yazı yazdırmak için write() fonksiyonunu kullanırsın. turtle.write(), geçerli kaplumbağa konumuna metin yazar; metnin hizası ve görünümü parametrelerle değiştirilebilir. Yazının nerede duracağını kaplumbağanın o anki konumu belirler. Bu yüzden önce kaplumbağayı doğru noktaya götürmeyi, sonra yazdırmayı öğrenmek gerekir.
write() ne yapar ve söz dizimi nasıldır?
write() çizim yapmaz, kaplumbağanın bulunduğu yere bir metin bırakır. Tam söz dizimi şöyledir:
turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))
Parametreler tek tek şunları yapar:
- arg: Yazılacak içerik. Genellikle bir metin verirsin; sayı gibi başka bir nesne verirsen Turtle onu metin biçimine çevirerek yazar.
- move: Yazıdan sonra kaplumbağanın yerinde kalıp kalmayacağını belirler. Varsayılanı
False'tur, yani kaplumbağa yazdığı yerde durur. - align: Yazının, kaplumbağanın konumuna göre soldan, ortadan ya da sağdan hizalanmasını belirler. Varsayılanı
"left"'tir. - font: Yazı tipi, boyut ve stili içeren üçlü bir demettir. Varsayılan font boyutu küçüktür, bu yüzden başlık gibi yazılarda boyutu büyütmek gerekir.
Yalnızca arg zorunludur. Diğer üçünü yazmazsan varsayılan değerler devreye girer.
En küçük çalışır örnek
import turtle
t = turtle.Turtle()
t.write("Merhaba")
turtle.done()
Bu kodu çalıştırdığında pencerenin ortasında, kaplumbağanın bulunduğu noktada küçük bir Merhaba yazısı görürsün. Ekranda çizgi oluşmaz, çünkü kaplumbağa hiç ilerlemedi. Son satırdaki turtle.done() pencerenin açık kalmasını sağlar.
Yazıyı istenen koordinata nasıl yerleştirirsin?

Yazıyı belirli bir noktaya koymak için sırayla penup(), goto(x, y), write(...) ve pendown() çağırırsın. Kalemi önce kaldırmanın nedeni basittir: kalem aşağıdayken goto() kaplumbağanın gittiği yol boyunca bir çizgi bırakır. Yazıyı yerleştirmek için gittiğin yolun ekranda kalmasını istemezsin.
Koordinat sistemi şöyle çalışır: pencerenin merkezi (0, 0) noktasıdır, x değeri sağa doğru, y değeri yukarı doğru artar. Yani (-100, 80) merkezin solunda ve üstünde bir noktadır.
import turtle
t = turtle.Turtle()
t.penup()
t.goto(-100, 80)
t.write("Başlık")
t.pendown()
turtle.done()
Çalıştırınca Başlık yazısı pencerenin sol üst tarafında görünür. Merkezle yazı arasında hiçbir çizgi yoktur. pendown() satırı yazıyı etkilemez; kalemi sonraki çizimler için yeniden indirir.
Yazı verdiğin (x, y) noktasına göre şöyle durur: çoğunlukla yazının sol ucu ve alt kenarı bu noktaya yakın olur. Yani koordinat yazının ortasını değil, başlangıç köşesini gösterir. Turtle'a yeni başlıyorsan komutların temelini ücretsiz Sıfırdan Temel Python video eğitimiyle kendi hızında pekiştirebilirsin.
align ve font parametreleri yazıyı nasıl değiştirir?
align yazının (x, y) noktasına göre nasıl hizalanacağını, font ise yazının görünümünü belirler. align için kullanabileceğin üç değer vardır:
| align değeri | Yazının (x, y) noktasına göre durumu | Ne zaman kullanılır |
|---|---|---|
| 'left' | Yazı noktadan başlar ve sağa doğru uzar | Sol kenara dayalı etiketler ve açıklamalar |
| 'center' | Yazı noktanın iki yanına eşit dağılır | Pencerenin ortasındaki başlıklar |
| 'right' | Yazı noktada biter ve sola doğru uzar | Sağ köşedeki notlar ve imzalar |
font parametresi üç elemanlı bir demettir: (yazı tipi adı, boyut, stil). Stil için 'normal', 'bold' ve 'italic' gibi değerler kullanılır. Yazı tipi adı bilgisayarına göre farklı sonuç verebilir; sistemde yüklü olmayan bir yazı tipi istersen yerine başka bir yazı tipiyle görüntülenebilir. Yazı beklediğinden farklı görünürse önce yazı tipi adını kontrol et.
Aşağıdaki örnek aynı pencerede iki farklı görünümü ve iki farklı hizayı birlikte kullanır:
import turtle
t = turtle.Turtle()
t.hideturtle()
t.penup()
t.goto(0, 60)
t.write("Not Ortalaması", align="center", font=("Arial", 18, "bold"))
t.goto(0, 30)
t.write("Dönem sonu raporu", align="center", font=("Arial", 10, "normal"))
t.goto(180, -150)
t.write("Hazırlayan: Ada", align="right", font=("Arial", 10, "italic"))
turtle.done()
Beklenen sonuç: büyük ve kalın başlık ile küçük açıklama pencerenin dikey eksenine göre ortalanır. İtalik imza ise x=180 noktasında biter, yani sağa dayalı durur.
move=True yazıdan sonra kaplumbağayı nereye taşır?

move=True verdiğinde, dokümantasyondaki ifadeyle kalem metnin sağ alt köşesine taşınır. Bu yüzden sonraki write() ya da çizim komutu, yazının başladığı yerden değil bittiği yerden devam eder.
import turtle
t = turtle.Turtle()
t.penup()
t.goto(-100, 0)
t.write("Merhaba ", move=True)
t.write("Dünya")
turtle.done()
Beklenen sonuç: "Merhaba Dünya" tek satırda yan yana görünür. İlk çağrıdaki move=True ifadesini kaldırırsan kaplumbağa (-100, 0) noktasında kalır ve ikinci yazı birincinin üstüne biner. Yan yana yazdırırken boşluğu kendin eklemen gerekir; örnekte "Merhaba " sonundaki boşluk bu işe yarar.
Aynı etki harekette de görülür:
t.write("Başlangıç ", move=True)
t.pendown()
t.forward(50)
Çizgi, yazının başladığı noktadan değil metnin sağ alt köşesinden başlar. move=False olsaydı çizgi, write() öncesindeki konumdan çıkardı.
align="center" ile move=True birlikte kullanıldığında kaplumbağanın tam olarak nereye geçtiğini kendi bilgisayarında bir deneme çalıştırarak görmen en sağlıklısıdır. Sonraki işlemin konumu kritikse write() sonrasında goto() ile kaplumbağayı açıkça istediğin noktaya götürmek, konuma bağımlılığı ortadan kaldırır.
Dikdörtgenin üstüne başlık, altına açıklama nasıl eklenir?
Şimdiye kadarki parçaları tek bir küçük projede birleştirelim: ortada 200x100 boyutlu bir dikdörtgen, üstünde kalın bir başlık, altında daha küçük bir açıklama olacak. Önce şekli çizer, sonra her yazı için kalemi kaldırıp ayrı bir konuma gideriz.
import turtle
t = turtle.Turtle()
t.speed(3)
t.hideturtle()
# Dikdörtgenin sol alt köşesine git
t.penup()
t.goto(-100, -50)
t.pendown()
# 200x100 dikdörtgen: köşeler (-100, -50) ve (100, 50)
for _ in range(2):
t.forward(200)
t.left(90)
t.forward(100)
t.left(90)
# Başlık: üst kenarın biraz üstünde, ortalı ve kalın
t.penup()
t.goto(0, 65)
t.write("Dikdörtgen", align="center", font=("Arial", 18, "bold"))
# Açıklama: alt kenarın biraz altında, daha küçük fontla
t.goto(0, -80)
t.write("200 x 100 birimlik şekil", align="center", font=("Arial", 11, "normal"))
turtle.done()
Pencerede ortada yatay bir dikdörtgen görürsün. Üst kenarın hemen üstünde kalın ve büyük başlık, alt kenarın altında ise daha küçük bir açıklama yer alır. İkisi de align="center" sayesinde dikdörtgenin orta çizgisine hizalanır. Piksel yerleşimi ekrana ve işletim sistemine göre birkaç piksel oynayabilir; bu yüzden payları cömert bırakmak iyi bir alışkanlıktır.
Kodu satır satır okurken goto(), penup() ve koordinatların birlikte nasıl çalıştığı ilk başta karışabilir. Bu noktada kendi kodun üzerinden ilerleyen birebir Python dersleri takıldığın yeri o anda sorup çözmene yardımcı olabilir.
Yazı çizgiyle çakışırsa ne yaparsın?
Yaygın hata, kalem aşağıdayken şeklin kenarına gidip hemen write() çağırmaktır. Önce yanlış hâline bak:
# YANLIŞ: kalem aşağıda, başlık tam üst kenarın üzerinde
t.pendown()
t.goto(0, 50)
t.write("Dikdörtgen", align="center", font=("Arial", 18, "bold"))
Kaplumbağa dikdörtgeni bitirdiği köşeden goto(0, 50) noktasına giderken fazladan bir çizgi çeker. Yazı da üst kenarın üzerine biner; çizgi harflerin alt kısmından geçer ve okunaklılığı bozar.
Düzeltilmiş hâli üç değişiklik içerir:
# DOĞRU
t.penup()
t.goto(0, 50 + 15)
t.write("Dikdörtgen", align="center", font=("Arial", 18, "bold"))
t.goto(0, -50 - 30)
t.write("200 x 100 birimlik şekil", align="center", font=("Arial", 11, "normal"))
- penup(): Kalem kalkık olduğu için
goto()ekranda iz bırakmaz. - Pay bırakma: Başlığı üst kenardan 15 birim yukarı, açıklamayı alt kenardan 30 birim aşağı koyduğumuz için yazı çizgiye değmez.
- y koordinatını kaydırma: Metin genellikle verdiğin y konumundan yukarı doğru yükselir. Açıklamada payı daha büyük tutmamızın nedeni budur.
Bu pay değerleri örnek amaçlıdır, her çizim için geçerli bir ölçü değildir. Font boyutunu büyütürsen payı da ona göre ayarlaman gerekir.
Yazıyı yerleştirmeden önce şu kontrol listesine göz at:
- Kalem kalktı mı (
penup())? - Şeklin kenarından pay bırakıldı mı?
- Hizalama için
alignseçildi mi? - Font boyutu şeklin boyutuna uyuyor mu?
- Yazıdan sonra kaplumbağanın hareket etmesi gerekiyorsa
movekullanıldı mı?
Turtle ile başka çizimleri ve temel Python konularını denemek istersen Berk Akademi blogundaki diğer yazılara göz atabilirsin.
Özetle write() yazıyı kaplumbağanın o anki konumuna koyar; geri kalanı kalemi kaldırmak, doğru koordinatı seçmek ve şeklin etrafında pay bırakmaktır. Bu küçük dikdörtgen projesini farklı fontlar ve hizalarla yeniden çalıştırarak parametrelerin etkisini kendi gözünle görebilirsin.