🐍PythonBaşlangıç

Scratch'ten Python'a Geçiş: Blok Karşılıkları ve İlk 5 Program

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

Scratch bloklarının Python karşılıkları tek tabloda: döngü, koşul, değişken, liste ve fonksiyon. Girinti gibi kritik farklar ve çalışır ilk 5 Python programı.

Scratch'te karakterleri hareket ettirdin, skor tuttun, belki küçük bir oyun bitirdin. Şimdi sıra yazılı kodda. İyi haber şu: Scratch'te öğrendiğin her kavramın Python'da bir karşılığı var. Yeni öğreneceğin şey düşünme biçimi değil, aynı fikirleri yazmanın yeni bir yolu.

Bu rehberin sonunda şunları yapabileceksin:

  • En çok kullanılan Scratch bloklarının Python'daki karşılığını tablodan bulup kullanmak,
  • Scratch ile Python arasındaki dört kritik farkı (girinti, iki nokta, = ile ==, metin ile sayı) tanımak,
  • Scratch'te yapmaya alışkın olduğun beş programı Python'da yazıp çalıştırmak.

Kodları yazmak için bir şey kurmana gerek yok: tarayıcıdaki kod editörünü aç, dil olarak Python'u seç ve başla.

Bloklar ile yazılı kod arasındaki fark

Scratch'te bloklar yalnızca doğru yere oturur; "eğer" bloğunun içine bir koşul koymayı unutamazsın, çünkü boşluk göze batar. Python'da ise her şeyi sen yazarsın. Bu biraz daha dikkat ister ama karşılığında çok daha fazla özgürlük verir: Uzun bir programı Scratch'te sayfalarca blokla kurmak yerine Python'da birkaç satırla yazabilirsin.

Python, satırları tıpkı Scratch'teki blok yığını gibi yukarıdan aşağıya çalıştırır. Bir bloğun "içinde" olmak Scratch'te bloğun ağzına yerleşmekle, Python'da ise satırın içeriden (girintili) başlamasıyla gösterilir.

Scratch blokları ve Python karşılıkları

Aşağıdaki tabloda Scratch blokları Türkçe arayüzdeki adlarıyla verildi; sürüme göre adlarda küçük farklar görebilirsin. Tabloyu yazdırıp masanın yanına koymak ilk haftalarda çok işe yarar.

Scratch bloğuPython karşılığıNot
yeşil bayrak tıklandığında(programın ilk satırı)Python programı çalıştır düğmesine basınca en üstten başlar.
Merhaba! deprint("Merhaba!")Konuşma balonu yerine ekrana yazı yazar.
Adın ne? diye sor ve bekle / cevapcevap = input("Adın ne? ")Cevap her zaman metin olarak gelir.
skor değerini 0 yapskor = 0Değişkeni önce "Değişken Oluştur" ile yaratmak gerekmez; ilk atama yeterli.
skor'u 1 değiştirskor = skor + 1 ya da skor += 1İkisi aynı işi yapar.
10 kez tekrarlafor i in range(10):Altındaki girintili satırlar 10 kez çalışır.
sürekli tekrarlawhile True:Çıkmak için break kullanılır.
... olana kadar tekrarlawhile not kosul:Koşul doğru olana kadar döner.
eğer ... iseif kosul:Sonundaki iki nokta zorunlu.
eğer ... ise / değilseif kosul: ... else:Arada başka koşullar için elif var.
... ve ... / ... veya ... / ... değiland / or / notÖrnek: if yas > 9 and yas < 13:
... = ... (karşılaştırma)==Tek = değer atar, çift == karşılaştırır.
1 ile 10 arasında rastgele sayı tutrandom.randint(1, 10)En üstte import random gerekir; 1 ve 10 dahildir.
elma ve muz'u birleştir"elma" + "muz"Sayıyı metne eklemek için str(sayi) kullanılır.
elma'nın uzunluğulen("elma")Sonuç 4'tür.
1 saniye bekletime.sleep(1)En üstte import time gerekir.
listeye ekleliste.append(oge)Liste liste = [] ile oluşturulur.
listenin 1. öğesiliste[0]Dikkat: Python'da sayma 0'dan başlar.
Bloklarım: blok oluşturdef blok_adi():Kendi komutunu (fonksiyon) tanımlar.
10 adım git / 15 derece dön (kalem)turtle.forward(10) / turtle.right(15)Çizim için Turtle rehberine bak.

Dikkat etmen gereken dört kritik fark

1. Girinti, bloğun "içi" demektir

Scratch'te bir bloğu "tekrarla"nın ağzına koyduğunda o blok döngünün içindedir. Python'da aynı şeyi satırı 4 boşluk içeriden başlatarak söylersin. Girintisi olmayan satır döngünün dışındadır ve döngü bittikten sonra bir kez çalışır.

2. İki nokta üst üste unutulmaz

for, while, if, elif, else ve def satırları her zaman : ile biter. Bu iki nokta, "şimdi içerik geliyor" demektir; Scratch'teki bloğun açık ağzı gibi düşünebilirsin.

3. Tek eşittir ile çift eşittir farklı şeylerdir

Scratch'te "skor değerini 0 yap" ile "skor = 0" (yeşil karşılaştırma bloğu) farklı renkte ve şekilde bloklardır, karıştırılmaz. Python'da ikisi de eşittir işaretiyle yazılır: skor = 0 değer atar, skor == 0 ise "skor 0'a eşit mi?" diye sorar.

4. Metin ile sayı ayrıdır

Scratch, "5" yazısını gerektiğinde sayı gibi kullanır. Python bunu yapmaz: input ile gelen her şey metindir. Hesap yapacaksan int() ile sayıya çevirmelisin. Tersine, bir sayıyı metinle + kullanarak birleştireceksen str() ile metne çevirmelisin.

İpucu: Scratch listelerinde ilk öğe 1 numaradır, Python'da ise 0. Yani Scratch'teki "listenin 1. öğesi" Python'da liste[0] olur. Bu, geçiş döneminde en sık karışan konulardan biridir.

İlk 5 program: Scratch'te bildiğin, Python'da yeniden

Aşağıdaki her programda önce Scratch'te nasıl kurulduğunu, sonra Python karşılığını göreceksin. Kodları kopyalamak yerine elle yazmanı öneririz; parmakların işaretleri ezberledikçe hızlanırsın.

Program 1: Konuşan kedi

Scratch'te: yeşil bayrak tıklandığında → "Adın ne?" diye sor ve bekle → "Merhaba" ile cevap'ı birleştir de.

print("Miyav! Ben kod kedisiyim.")
isim = input("Adın ne? ")
print("Merhaba " + isim + ", tanıştığıma sevindim!")
print("Adında", len(isim), "harf var.")

"Zeynep" yazarsan son satır Adında 6 harf var. olur. print içinde virgülle ayrılan parçalar arasına Python kendiliğinden bir boşluk koyar; + ile birleştirirken boşlukları sen eklemelisin.

Program 2: Roket geri sayımı

Scratch'te: sayac değerini 5 yap → 5 kez tekrarla: sayac de, 1 saniye bekle, sayac'ı -1 değiştir → "Kalkış!" de.

import time

sayac = 5
for i in range(5):
    print(sayac)
    time.sleep(1)
    sayac = sayac - 1

print("Kalkış!")

Çıktı, her satır arasında birer saniye beklenerek 5, 4, 3, 2, 1 ve ardından Kalkış! olur. print("Kalkış!") satırının girintisiz olduğuna dikkat et: döngünün dışında olduğu için yalnızca bir kez, en sonda çalışır. Onu da içeri itersen her saniye "Kalkış!" yazar.

Program 3: Not hesaplayıcı

Scratch'te: "Kaç puan aldın?" diye sor ve bekle → eğer cevap > 84 ise "Pekiyi" de, değilse eğer cevap > 69 ise ... şeklinde iç içe "eğer-değilse" blokları.

Scratch'te iç içe geçen "eğer-değilse" blokları Python'da elif ile düz bir merdivene dönüşür ve okuması kolaylaşır:

puan = int(input("Kaç puan aldın? (0-100) "))

if puan > 100 or puan < 0:
    print("Puan 0 ile 100 arasında olmalı.")
elif puan >= 85:
    print("Pekiyi! Harika iş.")
elif puan >= 70:
    print("İyi! Biraz daha çalışırsan pekiyi gelir.")
elif puan >= 50:
    print("Geçtin. Eksiklerini birlikte tamamlayalım.")
else:
    print("Bu sefer olmadı, tekrar deneyelim.")

Python koşulları sırayla dener ve ilk doğru olanı çalıştırıp gerisini atlar. Bu yüzden 90 puan için yalnızca "Pekiyi! Harika iş." yazılır; 90, 70'ten de büyük olsa "İyi!" mesajı çıkmaz. 72 girersen İyi! Biraz daha çalışırsan pekiyi gelir. çıktısını görürsün.

Program 4: Sayı tahmin oyunu

Scratch'te: gizli değerini 1 ile 10 arasında rastgele sayı yap → tahmin = gizli olana kadar tekrarla: sor ve bekle, eğer cevap < gizli ise "Daha büyük" de...

import random

gizli = random.randint(1, 10)
tahmin = 0
deneme = 0

while tahmin != gizli:
    tahmin = int(input("1 ile 10 arasında bir sayı tahmin et: "))
    deneme = deneme + 1
    if tahmin < gizli:
        print("Daha büyük bir sayı dene.")
    elif tahmin > gizli:
        print("Daha küçük bir sayı dene.")

print("Bildin! Sayı " + str(gizli) + " idi.")
print("Deneme sayın:", deneme)

Scratch'teki "olana kadar tekrarla" bloğu, Python'da koşulun tersiyle yazılan bir while döngüsüdür: "tahmin gizliye eşit olana kadar" yerine "tahmin gizliden farklı olduğu sürece" (!=). tahmin = 0 satırı önemli: döngü ilk kez kontrol edilirken tahmin değişkeninin bir değeri olmalı. Bu oyunu deneme hakkı ve skor ekleyerek geliştirmek için Python sayı tahmin oyunu rehberine geçebilirsin.

Program 5: Kendi bloğunu yap ve listeyle çalış

Scratch'te: Bloklarım → "satır çiz (uzunluk)" adlı blok oluştur; bir liste yap, öğelerini sırayla gezip her biri için bloğu çağır.

def satir_ciz(uzunluk, isaret):
    print(isaret * uzunluk)

boylar = [1, 3, 5, 7]
boylar.append(9)

for boy in boylar:
    satir_ciz(boy, "*")

print("Listede", len(boylar), "öğe var. İlk öğe:", boylar[0])

Bu program şu çıktıyı verir:

*
***
*****
*******
*********
Listede 5 öğe var. İlk öğe: 1

Burada üç yeni şey var. def, Scratch'teki "blok oluştur" gibi kendi komutunu tanımlar; parantez içindeki uzunluk ve isaret, bloğa eklediğin girdi kutularıdır. "*" * 5 bir metni 5 kez yan yana yazar. for boy in boylar: ise listenin her öğesini sırayla boy değişkenine koyar; Scratch'te bunun için ayrıca bir sayaç değişkeni tutman gerekirdi.

Sık yapılan hatalar

Hata mesajları İngilizcedir ve korkutucu görünebilir, ama en son satır genellikle sorunu söyler. Aşağıdaki mesajlar Python'un güncel sürümlerinden alınmıştır; senin sürümünde ifadeler biraz farklı olabilir. Daha fazla örnek için En sık kod hataları rehberine bak.

Hata mesajıNe oldu?Çözüm
IndentationError: expected an indented blockif ya da for satırından sonraki satır içeriden başlamamış.Bloğun içindeki satırları 4 boşluk içeri al.
SyntaxError: invalid syntax. Maybe you meant '==' ...Koşulda == yerine = yazılmış: if puan = 100:Karşılaştırmada çift eşittir kullan.
SyntaxError: expected ':'if, for, while ya da def satırının sonunda iki nokta yok.Satırın sonuna : ekle.
TypeError: can only concatenate str (not "int") to strMetin ile sayı + ile birleştirilmeye çalışılmış.Sayıyı str() ile çevir ya da print içinde virgül kullan.
TypeError: '<' not supported between instances of 'str' and 'int'input ile gelen metin, int() yapılmadan sayıyla karşılaştırılmış.int(input(...)) kullan.
NameError: name 'Print' is not definedKomut yanlış yazılmış; Python büyük-küçük harfe duyarlıdır.print küçük harfle yazılır.
IndexError: list index out of rangeListede olmayan bir sıra numarası istenmiş, çoğu zaman Scratch alışkanlığıyla 1'den sayıldığı için.İlk öğe [0], son öğe [len(liste) - 1] ya da [-1].

Bir de hata mesajı vermeyen ama yanlış çalışan durum var: Program 2'deki print("Kalkış!") gibi bir satırı yanlışlıkla döngünün içine girintilemek. Program çalışır ama beklediğin gibi davranmaz. Böyle durumlarda kendine şu soruyu sor: "Bu satır Scratch'te tekrarla bloğunun içinde mi olurdu, altında mı?"

Kendin dene

Görevler kolaydan zora doğru sıralandı. Hepsini kod editöründe çalıştırarak dene.

  1. Kedi daha çok konuşsun: Program 1'e en sevdiğin yemeği soran bir satır ekle ve cevabı tek bir cümle içinde kullan.
  2. Uzun geri sayım: Program 2'yi değiştirerek kullanıcıya "Kaçtan geri sayayım?" diye sor ve o sayıdan başla. İpucu: range içine de aynı sayıyı yazman gerekiyor.
  3. Harf notu: Program 3'e "AA", "BA", "BB" gibi daha fazla kademe ekle. Kademelerin sırasının neden önemli olduğunu deneyerek gör: >= 50 satırını en üste taşırsan ne olur?
  4. Hak sınırı: Program 4'te oyuncuya en fazla 4 deneme hakkı ver. Hakkı biterse "Kaybettin, sayı ... idi." yazsın. İpucu: while koşuluna and deneme < 4 ekleyebilirsin.
  5. Piramit bloğu: Program 5'teki satir_ciz fonksiyonuna bir girdi daha ekle: bosluk. Satırın başına o kadar boşluk koysun. Bu yeni bloğu kullanarak yıldızlardan ortalanmış bir piramit çiz.
Ebeveynler ve öğretmenler için not: Scratch'ten Python'a geçişte çocukların en çok zorlandığı şey kavramlar değil, yazım ayrıntılarıdır: iki nokta, girinti, tırnak, büyük-küçük harf. Bu dönemde kısa bir süre motivasyon düşebilir; "Scratch'te bunu bir dakikada yapıyordum" itirazı çok yaygındır. Bunu aşmanın iyi bir yolu, çocuğun Scratch'te zaten yaptığı bir projeyi Python'da yeniden yazmasıdır: hedef tanıdık olduğunda yalnızca yeni yazım biçimine odaklanır. Hata mesajlarını birlikte okuyun ve son satırı sesli olarak Türkçeye çevirin. Geçişin ilk haftalarında Scratch'i yasaklamak yerine iki ortamı paralel kullanmak da işe yarar. Genel yol haritası için Çocuklar için kodlamaya nereden başlanır? rehberine bakabilirsiniz.

Sık sorulan sorular

Scratch'ten Python'a geçmek için ne zaman hazır olunur?

Scratch'te değişken, "tekrarla" ve "eğer" bloklarını kendiliğinden kullanıyor, klavyede kısa cümleleri rahatça yazabiliyorsan hazırsın. Birçok çocuk için bu dönem 10–12 yaş civarına denk gelir, ama belirleyici olan yaş değil bu becerilerdir.

Python'da Scratch'teki gibi karakterler ve çizimler yapılabilir mi?

Evet. Kalem bloklarına en yakın karşılık Python'un turtle modülüdür; ileri git, dön, kalemi kaldır gibi komutlar Scratch'tekine çok benzer. Daha karmaşık oyunlar için ayrıca oyun kütüphaneleri kullanılabilir.

Python'da neden her şeyi İngilizce yazmak zorundayım?

print, if, for gibi anahtar kelimeler İngilizcedir ve değiştirilemez. Ama değişken ve fonksiyon adlarını Türkçe kelimelerle (Türkçe karakter kullanmadan) seçebilirsin: skor, isim, satir_ciz gibi.

Girinti için boşluk mu, Tab tuşu mu kullanmalıyım?

Python'da yaygın kural her seviye için 4 boşluktur. Çoğu kod editörü Tab tuşuna basınca otomatik olarak 4 boşluk ekler. Önemli olan aynı dosyada ikisini karıştırmamaktır.

Scratch'e bir daha dönmemem mi gerekiyor?

Hayır. Scratch bir fikri hızlıca denemek ve görsel projeler yapmak için hâlâ çok kullanışlıdır. Bir algoritmayı önce Scratch'te kurup sonra Python'a çevirmek, geçiş döneminde verimli bir çalışma yöntemidir.

Öğ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