🧱TemellerBaşlangıç

Değişken, Koşul, Döngü: Python ve JavaScript ile Temeller

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

Programlamanın üç temel taşı değişken, koşul ve döngüyü Python ve JavaScript örnekleriyle yan yana öğren. Sık hatalar, alıştırmalar ve SSS bu rehberde.

Hangi programlama dilini öğrenirsen öğren, karşına ilk çıkacak üç kavram aynıdır: değişken, koşul ve döngü. Bir oyundaki can sayısı bir değişkende durur, "can sıfır olduysa oyun bitti" demek bir koşuldur, oyunun saniyede defalarca kendini yenilemesi de bir döngüdür. Bu üçünü anladığında, karşına çıkan programların büyük kısmını okuyup ne yaptığını tahmin edebilirsin.

Bu rehberin sonunda şunları yapabileceksin:

  • Değişken oluşturup değerini değiştirmek, metin ile sayı arasındaki farkı bilmek,
  • if, elif / else if ve else ile programına karar verdirmek,
  • for ve while döngüleriyle bir işi istediğin kadar tekrarlatmak,
  • Üçünü birleştirip küçük ama gerçek bir program yazmak.

Her örneği hem Python hem de JavaScript ile yan yana göreceksin. Böylece fikrin dilden bağımsız olduğunu, değişenin yalnızca yazım şekli olduğunu fark edeceksin. Kodları denemek için bilgisayarına bir şey kurmana gerek yok: tarayıcıdaki kod editörünü açıp örnekleri yapıştırman yeterli.

İpucu: Kodları kopyalamak yerine elle yazmayı dene. Yavaş gibi görünür ama parmakların söz dizimini (iki nokta, parantez, girinti) çok daha hızlı öğrenir.

1. Değişken: Bilgiyi saklayan etiketli kutu

Değişkeni, üzerinde isim etiketi olan bir kutu gibi düşünebilirsin. Kutunun içine bir değer koyarsın, sonra o değere etiketin adıyla ulaşırsın. Kutunun içindekini istediğin zaman değiştirebilirsin; zaten adı da buradan gelir.

Python'da değişken

Python'da değişken oluşturmak için adını yazar, eşittir işareti koyar ve değeri verirsin. Başka hiçbir şey gerekmez.

isim = "Ela"
yas = 11
boy = 1.45
oyun_bitti = False

print(isim, "bu yıl", yas, "yaşında.")
yas = yas + 1
print("Gelecek yıl", yas, "yaşında olacak.")
print("Boyu:", boy, "metre. Oyun bitti mi?", oyun_bitti)

JavaScript'te değişken

JavaScript'te değişkenin önüne bir anahtar kelime koyarsın: değeri sonradan değişecekse let, hiç değişmeyecekse const. Satır sonlarındaki noktalı virgül de JavaScript'in alışkanlığıdır.

const isim = "Ela";
let yas = 11;
const boy = 1.45;
let oyunBitti = false;

console.log(isim, "bu yıl", yas, "yaşında.");
yas = yas + 1;
console.log("Gelecek yıl", yas, "yaşında olacak.");
console.log("Boyu:", boy, "metre. Oyun bitti mi?", oyunBitti);

İki programın çıktısı da aynıdır:

Ela bu yıl 11 yaşında.
Gelecek yıl 12 yaşında olacak.
Boyu: 1.45 metre. Oyun bitti mi? False

(JavaScript son satırda False yerine küçük harfle false yazar.)

Buradaki en önemli satır yas = yas + 1. Matematikte bu ifade saçma olurdu, ama programlamada eşittir işareti "eşittir" değil, "sağdakini hesapla, sonucu soldaki kutuya koy" anlamına gelir. Önce yas + 1 hesaplanır (11 + 1 = 12), sonra 12 değeri yas kutusuna yazılır.

Değer türleri

Kutuya koyduğun her değerin bir türü vardır. Başlangıçta bilmen gereken dört tür şunlar:

TürÖrnekPython adıJavaScript adı
Tam sayı11, -3, 0intnumber
Ondalıklı sayı1.45floatnumber
Metin"Ela"strstring
Doğru / yanlışTrue / False (Python), true / false (JS)boolboolean

Ondalıklı sayılarda virgül değil nokta kullanılır: 1,45 değil 1.45. Metinler ise her zaman tırnak içinde yazılır. Tırnak işareti bilgisayara "bu bir isim değil, olduğu gibi yazılacak bir metin" der.

Metin mi, sayı mı? Küçük ama önemli fark

Tırnak içindeki "5" bir sayı değil, içinde 5 karakteri olan bir metindir. İki metni topladığında yan yana eklenirler. Gerçek toplama için önce sayıya çevirmen gerekir:

a = "5"
b = "3"
print(a + b)            # 53  (iki metin yan yana)
print(int(a) + int(b))  # 8   (iki sayı toplandı)
print(type(a), type(int(a)))
const a = "5";
const b = "3";
console.log(a + b);                  // 53
console.log(Number(a) + Number(b));  // 8
console.log(typeof a, typeof Number(a));

Bu fark, kullanıcıdan bilgi aldığında çok önemlidir. Python'da input() ile alınan her şey metin olarak gelir; sayı gibi kullanmak istiyorsan int() ile çevirmelisin:

yas = input("Kaç yaşındasın? ")
yas = int(yas)
print("10 yıl sonra", yas + 10, "yaşında olacaksın.")

Kullanıcı 11 yazarsa ekranda "10 yıl sonra 21 yaşında olacaksın." görünür. İkinci satırı silersen program hata verir, çünkü metne sayı eklenemez.

İyi değişken adı nasıl seçilir?

  • Anlamlı olsun: x yerine puan, a yerine can_sayisi. Bir hafta sonra koduna baktığında teşekkür edeceksin.
  • Türkçe karakter kullanma: yaş yerine yas, şehir yerine sehir. Bazı diller izin verse de paylaştığın kodda sorun çıkarabilir.
  • Boşluk olmasın: Python'da kelimeleri alt çizgiyle (oyun_bitti), JavaScript'te büyük harfle (oyunBitti) birleştirmek yaygın bir alışkanlıktır.
  • Rakamla başlamasın: 2oyuncu geçersizdir, oyuncu2 geçerlidir.
  • Büyük-küçük harf farklıdır: Puan ile puan iki ayrı değişkendir.

2. Koşul: Programa karar verdirmek

Gerçek hayatta sürekli karar veririz: "Yağmur yağıyorsa şemsiye al, yağmıyorsa alma." Programlar da aynı şekilde karar verir. Bir koşul doğruysa bir şey, yanlışsa başka bir şey yapılır.

Karşılaştırma işaretleri

AnlamıPythonJavaScript
Eşit mi?=====
Eşit değil mi?!=!==
Büyük / küçük> <> <
Büyük eşit / küçük eşit>= <=>= <=

Her karşılaştırmanın sonucu ya doğru ya yanlıştır. 7 > 3 doğru, 2 == 5 yanlıştır.

if, elif / else if, else

Bir oyunda puana göre rozet veren bir program yazalım:

puan = 72

if puan >= 90:
    print("Harika! Altın rozet kazandın.")
elif puan >= 70:
    print("Çok iyi! Gümüş rozet senin.")
elif puan >= 50:
    print("Geçtin. Bronz rozet.")
else:
    print("Bu sefer olmadı, tekrar dene.")
const puan = 72;

if (puan >= 90) {
  console.log("Harika! Altın rozet kazandın.");
} else if (puan >= 70) {
  console.log("Çok iyi! Gümüş rozet senin.");
} else if (puan >= 50) {
  console.log("Geçtin. Bronz rozet.");
} else {
  console.log("Bu sefer olmadı, tekrar dene.");
}

Puan 72 olduğu için iki program da "Çok iyi! Gümüş rozet senin." yazar. Program koşulları yukarıdan aşağıya sırayla kontrol eder ve ilk doğru olanı çalıştırıp gerisini atlar. 72, 90'dan büyük değil; ama 70'ten büyük, bu yüzden ikinci blok çalışır. Üçüncü koşul da doğru olsa bile ona hiç bakılmaz.

İki dil arasındaki yazım farklarına dikkat et:

  • Python koşulun sonuna iki nokta (:) koyar ve içerideki satırları girintiyle (genellikle 4 boşluk) belirler.
  • JavaScript koşulu parantez içine alır ve içerideki satırları süslü parantezle { } gruplar. Girinti okunabilirlik içindir ama zorunlu değildir.
  • Python'daki elif, JavaScript'te else if olarak yazılır.

Koşulları birleştirmek: ve, veya, değil

Bazen birden fazla şartı aynı anda kontrol etmen gerekir. Bunun için üç bağlaç vardır:

AnlamıPythonJavaScriptNe zaman doğru?
veand&&İki koşul da doğruysa
veyaor||En az biri doğruysa
değilnot!Koşulu tersine çevirir
yas = 12
izin_var = True

if yas >= 10 and izin_var:
    print("Oyuna girebilirsin.")

hava = "yağmurlu"
if hava == "yağmurlu" or hava == "karlı":
    print("Şemsiyeni al.")

if not izin_var:
    print("Önce izin iste.")
const yas = 12;
const izinVar = true;

if (yas >= 10 && izinVar) {
  console.log("Oyuna girebilirsin.");
}

const hava = "yağmurlu";
if (hava === "yağmurlu" || hava === "karlı") {
  console.log("Şemsiyeni al.");
}

if (!izinVar) {
  console.log("Önce izin iste.");
}

Çıktıda ilk iki mesaj görünür. Üçüncü mesaj görünmez, çünkü izin_var doğru; "değil" onu yanlışa çevirir ve koşul sağlanmaz.

3. Döngü: Bilgisayara tekrar yaptırmak

Bilgisayarlar sıkılmadan aynı işi binlerce kez yapabilir. Ekrana 1'den 100'e kadar sayı yazdırmak için 100 satır kod yazmana gerek yoktur; bir döngü bunu 2–3 satırda halleder. İki temel döngü türü vardır: for ve while.

for döngüsü: Kaç kez tekrarlanacağını biliyorsan

for i in range(1, 6):
    print(i, "x 7 =", i * 7)

meyveler = ["elma", "armut", "kiraz"]
for meyve in meyveler:
    print("Bugün", meyve, "yedim.")
for (let i = 1; i <= 5; i++) {
  console.log(i, "x 7 =", i * 7);
}

const meyveler = ["elma", "armut", "kiraz"];
for (const meyve of meyveler) {
  console.log("Bugün", meyve, "yedim.");
}

İlk döngü 7'ler çarpım tablosunun ilk beş satırını yazar, ikincisi listedeki her meyve için bir cümle kurar.

Burada dikkat etmen gereken bir ayrıntı var: Python'daki range(1, 6) 1'den başlar ama 6'yı dahil etmez; yani 1, 2, 3, 4, 5 üretir. JavaScript'te aynı şeyi i <= 5 koşuluyla söyleriz. JavaScript'teki i++ ise "i'yi bir artır" demenin kısa yoludur.

while döngüsü: Bir koşul sürdükçe

Kaç kez tekrarlanacağını önceden bilmiyorsan, ya da "şu durum değişene kadar devam et" demek istiyorsan while kullanırsın. Bir roket geri sayımı yapalım:

sayac = 5
while sayac > 0:
    print(sayac, "...")
    sayac = sayac - 1
print("Roket kalktı!")
let sayac = 5;
while (sayac > 0) {
  console.log(sayac, "...");
  sayac = sayac - 1;
}
console.log("Roket kalktı!");

Döngü her turda önce koşula bakar: sayac hâlâ 0'dan büyük mü? Büyükse içeriyi çalıştırır. İçerideki sayac = sayac - 1 satırı çok önemlidir. Onu silersen sayaç hep 5 kalır, koşul hiç yanlış olmaz ve program sonsuza kadar döner. Buna sonsuz döngü denir.

Hangisini seçeyim? "10 kez yap" veya "listedeki her eleman için yap" diyorsan for; "oyuncu doğru cevabı bulana kadar sor" diyorsan while daha doğal durur.

4. Üçünü birleştirmek: İlk gerçek programların

Asıl güç, bu üç taşı birlikte kullandığında ortaya çıkar. Aşağıdaki iki program, döngünün içine koşul koyar ve sonuçları değişkenlerde biriktirir.

Kuzey Kutbu sayma oyunu

Sınıflarda sık oynanan bir sayma oyununun kod hâli: 1'den 15'e kadar say, 3'e bölünen sayılar yerine "Kuzey", 5'e bölünenler yerine "Kutbu", ikisine de bölünenler yerine "Kuzey Kutbu" de. % işareti bölümden kalanı verir; kalan 0 ise sayı tam bölünüyor demektir.

# 1'den 15'e kadar say:
# 3'e bölünenlere "Kuzey", 5'e bölünenlere "Kutbu",
# ikisine de bölünenlere "Kuzey Kutbu" de.
for sayi in range(1, 16):
    if sayi % 3 == 0 and sayi % 5 == 0:
        print("Kuzey Kutbu")
    elif sayi % 3 == 0:
        print("Kuzey")
    elif sayi % 5 == 0:
        print("Kutbu")
    else:
        print(sayi)
// 1'den 15'e kadar say:
// 3'e bölünenlere "Kuzey", 5'e bölünenlere "Kutbu",
// ikisine de bölünenlere "Kuzey Kutbu" de.
for (let sayi = 1; sayi <= 15; sayi++) {
  if (sayi % 3 === 0 && sayi % 5 === 0) {
    console.log("Kuzey Kutbu");
  } else if (sayi % 3 === 0) {
    console.log("Kuzey");
  } else if (sayi % 5 === 0) {
    console.log("Kutbu");
  } else {
    console.log(sayi);
  }
}

Çıktı şöyle başlar: 1, 2, Kuzey, 4, Kutbu, Kuzey, 7, 8, … ve 15'te "Kuzey Kutbu" ile biter. Koşulların sırasına dikkat et: "ikisine de bölünüyor mu?" kontrolü en üstte olmak zorunda. Onu en alta koysaydın, 15 sayısı önce "3'e bölünüyor mu?" sorusuna takılır ve yalnızca "Kuzey" yazılırdı.

Sınıf puanı hesaplayıcı

Bir listedeki puanların toplamını, ortalamasını ve kaç kişinin geçtiğini bulalım. Burada değişkenler sayaç ve biriktirici olarak kullanılıyor: döngüden önce sıfırlanıyor, döngünün her turunda büyüyor.

puanlar = [45, 80, 62, 95, 38, 71]
toplam = 0
gecen = 0

for puan in puanlar:
    toplam = toplam + puan
    if puan >= 50:
        gecen = gecen + 1

ortalama = toplam / len(puanlar)
print("Toplam:", toplam)
print("Ortalama:", round(ortalama, 1))
print("Geçen öğrenci sayısı:", gecen)
const puanlar = [45, 80, 62, 95, 38, 71];
let toplam = 0;
let gecen = 0;

for (const puan of puanlar) {
  toplam = toplam + puan;
  if (puan >= 50) {
    gecen = gecen + 1;
  }
}

const ortalama = toplam / puanlar.length;
console.log("Toplam:", toplam);
console.log("Ortalama:", ortalama.toFixed(1));
console.log("Geçen öğrenci sayısı:", gecen);

İki program da aynı sonucu verir:

Toplam: 391
Ortalama: 65.2
Geçen öğrenci sayısı: 4

Bu kalıp (değişkeni sıfırla, döngüde biriktir, sonunda kullan) programlamada en çok karşına çıkacak kalıplardan biridir. Bir oyunda toplanan altınları saymak da, bir alışveriş sepetinin tutarını hesaplamak da aynı mantıkla çalışır.

Sık yapılan hatalar

  1. = ile == karıştırmak. Tek eşittir değer atar, çift eşittir karşılaştırır. Python'da if puan = 100: yazarsan SyntaxError alırsın; doğrusu if puan == 100:.
  2. İki noktayı veya girintiyi unutmak (Python). if, elif, else, for ve while satırlarının sonunda : olmalı, altındaki satırlar içeri girintili olmalı. Girinti eksikse IndentationError görürsün.
  3. Metinle sayıyı doğrudan birleştirmek. Python'da "Yaşın: " + yas yazarsan TypeError: can only concatenate str (not "int") to str hatası alırsın. Çözüm: "Yaşın: " + str(yas) ya da f"Yaşın: {yas}". JavaScript hata vermez ama "5" + 3 sonucunu "53" yapar; bu da sessiz bir hatadır.
  4. JavaScript'te == kullanmak. 5 == "5" sonucu true, 5 === "5" sonucu false'tur. İki eşittir türleri kendiliğinden dönüştürür ve beklenmedik sonuçlar doğurabilir. Yeni başlıyorsan her zaman === kullan.
  5. const ile tanımladığın değişkeni değiştirmeye çalışmak. JavaScript TypeError: Assignment to constant variable. hatası verir. Değeri değişecek değişkenler için let kullan.
  6. Sonsuz döngü. while içinde koşulu değiştiren satırı unutmak programı kilitler. Döngüyü yazarken kendine "bu döngü nasıl bitecek?" diye sor.
  7. Bir eksik / bir fazla saymak. range(1, 10) 10'u içermez. JavaScript'te i < 10 ile i <= 10 arasında da bir tur fark vardır. Emin değilsen döngünün içine print(i) veya console.log(i) koyup hangi sayıların üretildiğine bak.

Kendin dene

Aşağıdaki görevleri editörde önce Python ile, sonra JavaScript ile yazmayı dene. Görevler giderek zorlaşıyor.

  1. Kendini tanıt: isim, yas ve sehir adında üç değişken oluştur ve bunları kullanarak "Merhaba, ben ..., ... yaşındayım ve ...'da yaşıyorum." cümlesini yazdır.
  2. Tek mi çift mi? Bir sayi değişkeni oluştur. % işaretini kullanarak sayı çiftse "Çift", tekse "Tek" yazdır. Farklı sayılarla dene.
  3. Çarpım tablosu: Kullanıcının seçtiği bir sayının (değişkende tut) 1'den 10'a kadar çarpım tablosunu döngüyle yazdır.
  4. Pozitif say: [4, -2, 7, 0, -5, 9] listesindeki pozitif sayıların kaç tane olduğunu ve toplamını bul. (İpucu: iki ayrı biriktirici değişken kullan.)
  5. Şifre denemesi: Bir while döngüsüyle kullanıcıdan şifre iste. Doğru şifre girilince "Hoş geldin!" yazıp döngüden çık. En fazla 3 deneme hakkı olsun; hak biterse "Hesap kilitlendi." yazsın. (Python'da input(), tarayıcı JavaScript'inde prompt() kullanabilirsin.)

Beşinci görevi bitirdiysen, aynı yapıyı genişleterek bir oyun yazmaya hazırsın: Python ile sayı tahmin oyunu rehberi tam olarak bu üç taşın üzerine kurulu.

Ebeveynler ve öğretmenler için: Bu üç kavramı ekrana geçmeden önce somut nesnelerle anlatmak çok işe yarar. Üzerine etiket yapıştırılmış bir kutu değişkeni, "kırmızı ışıkta dur, yeşilde geç" gibi bir kural koşulu, "kalem kutusundaki her kalemi çıkar" gibi bir talimat da döngüyü canlandırır. Daha küçük çocuklar için aynı mantığı önce blok kodlama ile kurup ardından metin koda geçmek, söz dizimi hatalarının yarattığı hayal kırıklığını azaltır. Çocuğunuz hata aldığında çözümü hemen söylemek yerine hata mesajını birlikte yüksek sesle okumayı deneyin; hata okumak da öğrenilmesi gereken bir beceridir.

Sırada ne var?

Sık sorulan sorular

Değişken, koşul ve döngüyü öğrenmek için hangi dille başlamalıyım?

Fikirler iki dilde de aynıdır. Python'un yazımı daha sade olduğu için ilk adımda genellikle daha az kafa karıştırır; JavaScript ise tarayıcıda doğrudan çalıştığı için web sayfası ve oyun yapmak isteyenlere hızlı sonuç verir. Birini seçip temelleri öğrendikten sonra diğerine geçmek kolaydır.

Python'da neden JavaScript'teki gibi süslü parantez kullanılmıyor?

Python, hangi satırların bir koşulun veya döngünün içinde olduğunu girintiyle anlar. Bu yüzden girinti Python'da zorunludur ve yanlış girinti hata verir. JavaScript ise aynı işi süslü parantezlerle yapar; girinti yalnızca okunabilirlik içindir.

JavaScript'te let ve const arasındaki fark nedir?

let ile tanımlanan değişkenin değeri sonradan değiştirilebilir, const ile tanımlananınki değiştirilemez. Değiştirmeye çalışırsan TypeError alırsın. Değeri değişmeyecek her şey için const, sayaç veya puan gibi değişen değerler için let kullanmak iyi bir alışkanlıktır.

for mu while mı kullanmalıyım?

Kaç kez tekrarlanacağını biliyorsan veya bir listenin her elemanını tek tek dolaşacaksan for daha uygundur. Tekrar sayısı önceden belli değilse ve bir durum değişene kadar devam etmek istiyorsan, örneğin oyuncu doğru cevabı bulana kadar, while daha doğaldır.

Programım hiç durmuyor, ne yapmalıyım?

Büyük olasılıkla sonsuz döngü yazdın. while koşulunu değiştiren bir satırın döngünün içinde olup olmadığını kontrol et. Programı durdurmak için terminalde Ctrl+C tuşlarına basabilir, tarayıcıda ise sayfayı yenileyebilirsin.

Bu üç kavramı öğrendikten sonra ne yapmalıyım?

Bunları birleştiren küçük projeler yaz: sayı tahmin oyunu, çarpım tablosu testi veya basit bir hesap makinesi iyi başlangıçlardır. Ardından fonksiyonlar ve listeler gibi konulara geçerek programlarını daha düzenli hâle getirebilirsin.

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