🐢PythonBaşlangıç

Python Turtle ile Çizim: Kare, Yıldız, Spiral ve Desenler

⏱ 10 dk okuma · Yayın: 9 Ekim 2026 · Hazırlayan: Kuzey Kutbu Editörlüğü · Tüm kod örnekleri çalıştırılarak test edildi

Python turtle modülüyle kare, çokgen, yıldız ve renkli spiral çiz. Döngü, fonksiyon, renk ve dolgu komutlarını çocuklara uygun örneklerle adım adım öğren.

Python'un turtle modülü, ekranda kalem tutan küçük bir kaplumbağayı komutlarla yürütmeni sağlar. "100 adım ileri git", "90 derece sağa dön" dersin, kaplumbağa gittiği yere çizgi çizer. Yazdığın her satırın sonucunu anında gözünle gördüğün için kodlamaya başlamanın en keyifli yollarından biridir. Bu fikir, çocuklara programlama öğretmek için geliştirilen Logo dilinden gelir ve Python'a hazır olarak eklenmiştir.

Bu rehberin sonunda şunları yapabileceksin:

  • Kaplumbağayı ileri, geri, sağa, sola hareket ettirmek ve koordinatlarla istediğin yere götürmek,
  • for döngüsüyle kare, üçgen ve her tür düzgün çokgeni çizmek,
  • Beş köşeli yıldızın neden 144 derece döndüğünü anlamak,
  • Renk değiştirmek, şekillerin içini boyamak ve renkli spiraller yapmak,
  • Kendi fonksiyonlarını yazıp yıldızlı bir gökyüzü ve çiçek deseni oluşturmak.

Python'a yeni başlıyorsan önce Python derslerinin ilk birkaç bölümüne bakabilirsin. Blok kodlamadan geliyorsan iyi haber: Scratch'teki "10 adım git" ve "15 derece dön" bloklarının Python karşılığı tam olarak bu rehberde göreceğin komutlar. Ayrıntılar için Scratch'ten Python'a geçiş rehberine göz at.

Turtle kodunu nerede çalıştırmalıyım?

Turtle, Python'un standart kütüphanesinin bir parçasıdır; ayrıca bir şey indirmen gerekmez. Ancak çizim yapmak için ayrı bir pencere açar. Bu yüzden bu rehberdeki kodları en sorunsuz şekilde bilgisayarına kurduğun Python ile çalıştırırsın. Python'u python.org'dan kurduğunda gelen IDLE editörü yeterlidir: File → New File ile yeni dosya aç, kodu yapıştır, kaydet ve F5 ile çalıştır.

Turtle dışındaki Python denemelerin için (döngüler, hesaplamalar, metinler) tarayıcıdaki kod editörünü kullanabilirsin.

Dikkat: Dosyanın adını turtle.py koyma! Python, import turtle satırını görünce önce kendi klasörüne bakar ve senin dosyanı yükler. Sonuçta AttributeError: module 'turtle' has no attribute 'Turtle' gibi şaşırtıcı bir hata alırsın. Dosyaya kare.py, cizim1.py gibi bir ad ver.

Kaplumbağanın dünyası: koordinatlar ve yön

Turtle penceresi bir koordinat düzlemidir. Tam orta nokta (0, 0)'dır. Sağa gittikçe x büyür, sola gittikçe küçülür (eksi olur). Yukarı gittikçe y büyür, aşağı gittikçe küçülür. Kaplumbağa ortada başlar ve sağa doğru bakar.

En çok kullanacağın komutlar şunlar:

KomutNe yapar?
t.forward(100)Baktığı yöne 100 adım ilerler.
t.backward(50)50 adım geri gider (yönü değişmez).
t.right(90) / t.left(90)Olduğu yerde 90 derece sağa / sola döner.
t.penup() / t.pendown()Kalemi kaldırır (çizmeden gider) / indirir (çizerek gider).
t.goto(x, y)Doğrudan (x, y) noktasına gider.
t.circle(50)Yarıçapı 50 olan bir çember çizer.
t.color("red")Kalem ve dolgu rengini kırmızı yapar.
t.pensize(3)Çizgi kalınlığını 3 yapar.
t.speed(0)Çizim hızını ayarlar: 1 en yavaş, 10 hızlı, 0 en hızlı.
t.hideturtle()Kaplumbağayı gizler, sadece çizim kalır.

İlk çizim: kare

Bir kare çizmek için kaplumbağaya dört kez "ileri git, sağa dön" demen gerekir. Bunu dört kez alt alta yazabilirsin, ama aynı şeyi tekrarlıyorsan bir döngü kullanmanın zamanı gelmiştir:

import turtle

t = turtle.Turtle()
t.shape("turtle")

for i in range(4):
    t.forward(100)
    t.right(90)

turtle.done()
  • import turtle: Turtle modülünü programa çağırır.
  • t = turtle.Turtle(): Yeni bir kaplumbağa oluşturur ve ona t adını verir. Bundan sonra her komutu t. ile başlatırız.
  • t.shape("turtle"): Ok yerine gerçekten kaplumbağa şekli gösterir. Tamamen süs, istersen silebilirsin.
  • for i in range(4):: İçerideki iki satırı 4 kez tekrar eder.
  • turtle.done(): Çizim bitince pencerenin açık kalmasını sağlar. Bu satırı unutursan bazı ortamlarda pencere çizim biter bitmez kapanır.

Kaplumbağa dört kenarı çizdikten sonra tam başladığı noktaya döner ve yine sağa bakar. Toplamda 4 × 90 = 360 derece, yani tam bir tur dönmüştür. Bu gözlem bir sonraki bölümün anahtarı.

Her çokgen için tek fonksiyon

Kareyi çizerken kaplumbağa toplam 360 derece döndü. Bu her kapalı düzgün çokgen için geçerlidir: kaplumbağa başladığı yöne geri dönene kadar tam bir tur atar. O halde her köşede dönmesi gereken açı:

dönüş açısı = 360 ÷ kenar sayısı

Üçgen için 360 ÷ 3 = 120, beşgen için 72, altıgen için 60 derece. Bu kuralı bir fonksiyona dönüştürelim ve 3 kenardan 8 kenara kadar bütün çokgenleri üst üste çizelim:

import turtle

t = turtle.Turtle()
t.speed(0)


def cokgen(kenar_sayisi, uzunluk):
    aci = 360 / kenar_sayisi
    for i in range(kenar_sayisi):
        t.forward(uzunluk)
        t.left(aci)


for kenar in range(3, 9):
    cokgen(kenar, 60)

turtle.done()

Fonksiyon (def), bir işi bir kez tanımlayıp istediğin kadar kullanmanı sağlar. cokgen(6, 60) yazdığında Python, kenar_sayisi yerine 6'yı, uzunluk yerine 60'ı koyar. Alttaki for kenar in range(3, 9): döngüsü ise fonksiyonu 3, 4, 5, 6, 7 ve 8 değerleriyle sırayla çağırır. Sonuçta aynı köşeden başlayan altı çokgen, iç içe geçmiş bir desen oluşturur.

İpucu: Kenar sayısını 36 ya da 72 yapıp uzunluğu küçültürsen (örneğin cokgen(72, 5)), şekil neredeyse bir daireye dönüşür. Bilgisayarlar daireleri de aslında çok sayıda küçük düz çizgiyle çizer.

Beş köşeli yıldız ve 144 derecenin sırrı

Yıldızı çizmek için kaplumbağa her köşede çok keskin bir dönüş yapar: 144 derece. Peki neden 144? Yıldızı çizerken kaplumbağa, kare çizerken olduğu gibi bir değil, iki tam tur döner: 2 × 360 = 720 derece. Beş köşe olduğu için 720 ÷ 5 = 144. Bu yıldızın içini de altın sarısıyla boyayalım:

import turtle

ekran = turtle.Screen()
ekran.bgcolor("midnightblue")

t = turtle.Turtle()
t.color("gold")
t.pensize(3)

t.begin_fill()
for i in range(5):
    t.forward(150)
    t.right(144)
t.end_fill()

t.hideturtle()
turtle.done()

Renkler ve dolgu

  • turtle.Screen(): Çizim penceresini verir. ekran.bgcolor("midnightblue") ile arka plan rengini değiştiririz.
  • t.color("gold"): Hem kalem hem dolgu rengini ayarlar. Ayrı ayrı ayarlamak istersen t.pencolor("red") ve t.fillcolor("yellow") kullanabilirsin ya da iki renk birden verebilirsin: t.color("red", "yellow").
  • t.begin_fill() ve t.end_fill(): Bu ikisinin arasında çizilen şeklin içi dolgu rengiyle boyanır. end_fill() çalışana kadar boyama yapılmaz.

Renk adları İngilizcedir: "red", "blue", "green", "orange", "purple", "pink", "gold" gibi. Tam istediğin tonu bulmak için "#ff8800" gibi onaltılık (hex) renk kodları da kullanabilirsin; bu kodlar web sayfalarında da kullanılır. Bunu ilk web sayfası rehberinde de göreceksin.

Yıldızı farklı açılarla denemek eğlencelidir. Sadece köşe sayısını ve açıyı değiştirerek farklı yıldızlar elde edebilirsin. Örneğin 7 köşeli bir yıldız için kaplumbağa 3 tur dönebilir: 3 × 360 ÷ 7 ≈ 154,3 derece, ve döngü 7 kez tekrar eder.

Renkli spiral

Şimdi döngünün gücünü gerçekten görelim. Kaplumbağa her adımda biraz daha uzun bir çizgi çizsin ve 90 yerine 91 derece dönsün. O 1 derecelik fark, kareleri her turda hafifçe döndürür ve büyüleyici bir spiral ortaya çıkar:

import turtle

ekran = turtle.Screen()
ekran.bgcolor("black")

t = turtle.Turtle()
t.speed(0)
t.pensize(2)

renkler = ["red", "orange", "yellow", "green", "blue", "purple"]

for i in range(180):
    t.pencolor(renkler[i % 6])
    t.forward(i * 2)
    t.right(91)

t.hideturtle()
turtle.done()

Bu kodda iki önemli fikir var:

  • Döngü değişkenini kullanmak: i her turda bir artar (0, 1, 2, ... 179). t.forward(i * 2) sayesinde çizgiler giderek uzar; son çizgi 358 adım uzunluğundadır.
  • Kalan (mod) işlemi: i % 6, i'nin 6'ya bölümünden kalanı verir ve sonuç hep 0 ile 5 arasındadır. Böylece listedeki altı renk sırayla, tekrar tekrar kullanılır: 0 kırmızı, 1 turuncu, ..., 5 mor, 6 yine kırmızı.
Dene: 91 yerine 89, 121, 144 ya da 170 yazıp sonucu karşılaştır. Açıyı biraz değiştirmek desenin tamamını değiştirir. Bu tür deneyler, matematiksel desenleri keşfetmenin en hızlı yoludur.

Fonksiyonlarla desen: yıldızlı gökyüzü ve çiçekler

Son projede öğrendiğimiz her şeyi birleştiriyoruz. Yıldız çizen bir fonksiyon yazacağız ama bu sefer fonksiyon nereye, ne büyüklükte ve hangi renkte çizeceğini parametre olarak alacak. Sonra random modülüyle gökyüzüne rastgele yıldızlar serpeceğiz. Alt kısma da çemberlerden oluşan iki çiçek ekleyeceğiz.

import turtle
import random

ekran = turtle.Screen()
ekran.bgcolor("midnightblue")

t = turtle.Turtle()
t.speed(0)
t.hideturtle()


def yildiz(x, y, boyut, renk):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color(renk)
    t.begin_fill()
    for i in range(5):
        t.forward(boyut)
        t.right(144)
    t.end_fill()


def cicek(x, y, yaprak_sayisi, renk):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.pencolor(renk)
    for i in range(yaprak_sayisi):
        t.circle(40)
        t.left(360 / yaprak_sayisi)


renkler = ["white", "gold", "lightblue", "pink"]
for i in range(15):
    x = random.randint(-280, 260)
    y = random.randint(0, 260)
    yildiz(x, y, random.randint(10, 30), random.choice(renkler))

cicek(-150, -150, 12, "hotpink")
cicek(150, -150, 8, "orange")

turtle.done()

Bu projede neler öğrendik?

  • Kalemi kaldırmak: yildiz fonksiyonu önce t.penup() ile kalemi kaldırır, t.goto(x, y) ile hedef noktaya çizgi çekmeden gider, sonra t.pendown() ile kalemi indirir. Bu üçlü olmadan yıldızlar birbirine çizgilerle bağlanırdı.
  • Parametreli fonksiyon: yildiz(x, y, boyut, renk) tek tanım, ama 15 farklı yıldız. Çizim mantığı bir yerde durduğu için yıldızın şeklini değiştirmek istersen tek bir yeri düzeltmen yeter.
  • Rastgelelik: random.randint(-280, 260) rastgele bir x konumu, random.choice(renkler) listeden rastgele bir renk seçer. Programı her çalıştırdığında farklı bir gökyüzü görürsün.
  • Çemberden çiçek: cicek fonksiyonu bir çember çizer, biraz döner, bir çember daha çizer. 12 çember 30'ar derece arayla dizilince bir çiçek ortaya çıkar (360 ÷ 12 = 30).

Pencere küçükse kenara yakın yıldızların bir kısmı dışarıda kalabilir; o zaman randint sınırlarını küçült.

Çizim çok mu yavaş? t.speed(0) en yüksek hızdır. Daha da hızlı istersen, çizime başlamadan önce ekran.tracer(0) yazıp ara adımların gösterilmesini kapatabilir, çizim bitince ekran.update() ile sonucu tek seferde ekrana getirebilirsin.

Sık yapılan hatalar

  • Dosyayı turtle.py diye kaydetmek: Yukarıda anlattığımız gibi Python senin dosyanı modül sanar. Dosyanın adını değiştir ve programı yeniden çalıştır.
  • Pencerenin hemen kapanması: Kodun sonuna turtle.done() eklemeyi unutma.
  • İstenmeyen çizgiler: goto ile yeni bir yere gitmeden önce penup() demezsen kaplumbağa giderken çizgi bırakır. Gittikten sonra pendown() demeyi unutursan da hiçbir şey çizilmez.
  • İç açı ile dönüş açısını karıştırmak: Eşkenar üçgenin iç açısı 60 derecedir ama kaplumbağa her köşede 120 derece döner. t.right(60) yazarsan üçgen değil, altıgenin yarısını çizersin. Kural: dönüş açısı = 360 ÷ kenar sayısı.
  • Boyanmayan şekil: begin_fill() yazıp end_fill()'i unutursan şeklin içi boyanmaz.
  • Yanlış renk adı: t.color("kirmizi") gibi Türkçe ya da yanlış yazılmış bir ad TurtleGraphicsError: bad color string hatası verir. Renk adlarını İngilizce yaz.
  • Parantezleri unutmak: t.penup yazmak hata vermez ama hiçbir şey de yapmaz; komutun çalışması için t.penup() şeklinde parantez gerekir.

Daha fazla hata örneği ve çözümü için Yeni başlayanların en sık kod hataları rehberine bakabilirsin.

Kendin dene

  1. Ev: Bir kare çiz, üstüne bir üçgen ekleyerek basit bir ev yap. Kapı için kareye küçük bir dikdörtgen ekle. İpucu: üçgenin dönüş açısı 120 derece.
  2. Gökkuşağı çemberleri: Aynı merkezden büyüyen 6 renkli çember çiz. İpucu: her çemberden önce kalemi kaldırıp kaplumbağayı biraz aşağı taşı, çünkü circle kaplumbağanın bulunduğu noktadan başlar.
  3. Döndürülmüş kareler: Bir kare çizen fonksiyon yaz, sonra bu kareyi 36 kez, her seferinde 10 derece dönerek çiz. Ortaya çiçeğe benzeyen bir desen çıkacak.
  4. Yıldız fonksiyonu: yildiz(kose_sayisi, boyut) adında bir fonksiyon yaz. 5, 7 ve 9 köşeli yıldızlar çizebilsin. İpucu: tek sayıda köşesi olan yıldızlarda dönüş açısı 180 - 180 / kose_sayisi olarak hesaplanabilir; 5 için bu 144 eder.
  5. Kendi manzaran: Fonksiyonlarla bir manzara oluştur: güneş (dolu çember), çimen (yeşil dikdörtgen), rastgele yerlerde birkaç ağaç ve çiçek. Her öğe için ayrı bir fonksiyon yaz.
Ebeveynler ve öğretmenler için: Turtle, geometri ile kodlamayı aynı anda çalıştıran nadir araçlardan biridir. Açı, çevre, koordinat düzlemi ve örüntü kavramları çocuğun kendi çizimlerinde karşısına çıkar. Kod yazdırmadan önce çocuğa yerde "kaplumbağa" rolü oynatmak işe yarar: siz komut verirsiniz ("3 adım ileri, sağa dön"), çocuk yürür; sonra roller değişir. Bu tür bilgisayarsız etkinlik fikirleri Algoritma nedir? rehberinde yer alıyor. Daha küçük yaştaki çocuklar için aynı mantığı önce blok kodlamayla denemek, metin tabanlı koda geçişi kolaylaştırır.

Sık sorulan sorular

Turtle modülünü ayrıca kurmam gerekiyor mu?

Hayır. Turtle, Python'un standart kütüphanesiyle birlikte gelir. Python'u python.org'dan kurduysan import turtle yazman yeterlidir. Çizim ayrı bir pencerede açıldığı için kodları bilgisayarındaki Python ile, örneğin IDLE editöründe çalıştırmak en sorunsuz yoldur.

Çizim penceresi açılıp hemen kapanıyor, ne yapmalıyım?

Kodunun en sonuna turtle.done() satırını ekle. Bu satır, çizim bittikten sonra pencerenin sen kapatana kadar açık kalmasını sağlar. Ayrıca dosyanın adının turtle.py olmadığından emin ol; bu ad modülle çakışır ve hatalara yol açar.

Kaplumbağayı daha hızlı nasıl çizdirebilirim?

t.speed(0) komutu en yüksek çizim hızını seçer. Çok uzun çizimlerde ekran.tracer(0) ile ara adımların gösterilmesini kapatıp çizim bitince ekran.update() ile sonucu tek seferde gösterebilirsin. t.hideturtle() ile kaplumbağayı gizlemek de çizimi biraz hızlandırır.

Turtle hangi yaş için uygun?

Klavyede rahat yazabilen ve temel açı kavramını tanıyan çocuklar, genellikle 10 yaş ve üzeri, turtle ile rahatça çalışabilir. Daha küçük çocuklar aynı ileri git ve dön mantığını önce blok kodlamayla denerse metin tabanlı koda geçiş kolaylaşır. Yetişkin yeni başlayanlar için de döngü ve fonksiyonları görsel olarak anlamanın iyi bir yoludur.

Turtle'dan sonra ne öğrenmeliyim?

Döngü, fonksiyon ve rastgelelik konularında rahatladıysan Python ile sayı tahmin oyunu rehberiyle etkileşimli bir oyun yazabilirsin. Çizimle devam etmek istersen JavaScript'in canvas özelliğiyle tarayıcıda çalışan Pong ve yılan oyunları iyi bir sonraki adımdır.

Öğrendiklerini hemen dene! 🚀

Kurulum yok: kodu tarayıcıdaki editöre yapıştır, çalıştır, değiştir.

💻 Kod Editörünü Aç📚 Ücretsiz Derslere Başla

Sıradaki rehberler