Programlamada değişken, bir programın çalışırken bilgi sakladığı, adı olan ve içeriği değişebilen bir hafıza alanıdır. Onu üzerine etiket yapıştırılmış bir kutu gibi düşünebilirsin: etikette kutunun adı yazar, içinde ise bir sayı, bir kelime ya da doğru/yanlış gibi bir bilgi durur. Aşağıda aynı skor sayacı örneğini önce Scratch bloklarıyla, sonra Python koduyla göreceksin.
Kısaca
- Değişken, programın bir bilgiyi daha sonra kullanmak üzere sakladığı, adı olan bir kutudur.
- Kutunun adı aynı kalır ama içindeki değer program çalışırken defalarca değişebilir.
- Scratch'te değişken "Değişken Oluştur" düğmesiyle, Python'da ise
skor = 0gibi bir satırla oluşturulur.- Değişkenlere sayı, metin ve doğru/yanlış gibi farklı türde bilgiler konabilir.
- Anlamlı adlar seçmek ve değişkeni kullanmadan önce bir başlangıç değeri vermek hataların çoğunu önler.
Değişken nedir? Etiketli kutu benzetmesi
Değişken, bilgisayarın hafızasında bir değeri saklamak için ayrılmış ve bir adla çağrılan yerdir; en kolay anlaşılma yolu onu etiketli bir kutu gibi düşünmektir. Vikipedi'deki değişken maddesi) de değişkeni, bir adla ilişkilendirilmiş ve değeri değiştirilebilen bir saklama alanı olarak tanımlar.
Odandaki bir kutuya "bilyeler" diye etiket yapıştırdığını hayal et. İçine 3 bilye koydun. Arkadaşın 2 bilye daha verdi, artık kutuda 5 bilye var. Kutunun etiketi hiç değişmedi ama içindeki miktar değişti. Programlamada da durum aynıdır:
- Etiket, değişkenin adıdır (örneğin
skor). - Kutunun içi, değişkenin değeridir (örneğin
5). - Kutuya bir şey koymak, değişkene değer atamaktır.
- Kutunun içine bakmak, değişkenin değerini okumaktır.
Bu benzetmenin bir önemli ayrıntısı var: Gerçek bir kutuya birden fazla şey atabilirsin ama basit bir değişken aynı anda tek bir değer tutar. Yeni bir değer koyduğunda eskisi silinir ve yerine yenisi geçer. skor değişkeni 5 iken ona 10 verirsen, kutuda artık yalnızca 10 vardır.
Değişkenler neden gerekli, oyunlarda nerede kullanılır?
Değişkenler, programın bir şeyi hatırlaması gerektiğinde kullanılır; değişken olmadan bir oyun ne skoru ne kalan canı ne de geçen süreyi aklında tutabilir. Bir programı adım adım talimatlar dizisi olarak düşünürsen, değişkenler bu adımlar arasında bilgi taşıyan araçlardır. Talimatların sırası ve mantığı hakkında daha fazla bilgi için algoritma kavramını anlatan yazımıza göz atabilirsin.
Sevdiğin bir oyunu düşün. Ekranda gördüğün birçok sayı aslında bir değişkenin değeridir:
- Skor: Her topladığın altında ya da vurduğun hedefte artar.
- Can: Bir engele çarptığında azalır, sıfıra inince oyun biter.
- Süre: Her saniye bir azalır ya da artar.
- Seviye: Bir bölümü bitirdiğinde bir sonraki sayıya geçer.
- Oyuncu adı: Oyunun başında yazdığın isim, oyun boyunca ekranda gösterilir.
- Oyun bitti mi?: Oyunun devam edip etmediğini tutan evet/hayır bilgisidir.
Değişkenlerin bir diğer faydası da programı esnek yapmasıdır. Bir karakterin hızını kodun on farklı yerine ayrı ayrı yazmak yerine hiz adında bir değişkende tutarsan, hızı değiştirmek istediğinde yalnızca tek bir yeri düzenlemen yeter.
Scratch'te değişken nasıl oluşturulur ve değiştirilir?

Scratch'te değişken, "Değişkenler" kategorisindeki "Değişken Oluştur" düğmesiyle birkaç tıklamada oluşturulur ve hazır bloklarla değeri ayarlanıp değiştirilir. Scratch'i daha önce hiç kullanmadıysan, önce Scratch'in ne olduğunu ve nasıl çalıştığını okuyabilirsin. Aşağıdaki adımları Scratch'in resmi sitesindeki çevrim içi editörde hemen deneyebilirsin.
Adım adım değişken oluşturma
- Scratch editörünü aç ve sol taraftaki turuncu renkli "Değişkenler" kategorisine tıkla.
- "Değişken Oluştur" düğmesine bas.
- Açılan pencereye değişkenin adını yaz, örneğin
skor. - "Tüm kuklalar için" ya da "Yalnızca bu kukla için" seçeneklerinden birini seç. Skor gibi oyunun genelini ilgilendiren bilgiler için genellikle "Tüm kuklalar için" uygundur.
- "Tamam" düğmesine bas. Artık
skordeğişkeni blok listesinde görünür ve sahnede küçük bir gösterge kutusu belirir.
Değişkenin yanındaki onay kutusunu işaretleyerek ya da kaldırarak sahnede görünüp görünmeyeceğini seçebilirsin.
Değeri ayarlamak ve değiştirmek
Scratch'te değişkenle çalışmak için en sık iki blok kullanılır. Türkçe arayüzde blokların yazılışı sürüme göre küçük farklılıklar gösterebilir ama işlevleri aynıdır:
- "skor değerini 0 yap" bloğu: Kutunun içini boşaltıp yeni bir değer koyar. Oyunun başında skoru sıfırlamak için kullanılır.
- "skor değerini 1 değiştir" bloğu: Kutudaki değere verilen sayıyı ekler. Negatif bir sayı yazarsan, örneğin -1, değeri azaltır.
Değişkenin kendisi de yuvarlak bir bloktur. Bu bloğu "söyle" ya da bir karşılaştırma bloğunun içine sürükleyerek değişkenin o anki değerini kullanabilirsin.
Python'da değişken nasıl tanımlanır?

Python'da değişken, adını yazıp eşittir işaretiyle bir değer vererek tanımlanır; ayrıca bir "oluştur" komutu gerekmez. Python'a yeni başlıyorsan, Python'un ne olduğunu ve neden sevildiğini anlatan sayfamız iyi bir başlangıç olur.
skor = 0
oyuncu_adi = "Ece"
oyun_bitti = False
print(skor)
print(oyuncu_adi)
Bu kodda üç değişken oluşturuldu. Buradaki = işareti matematikteki "eşittir" anlamında değil, "sağdaki değeri soldaki kutuya koy" anlamında kullanılır. Bu işleme atama denir. Python'un resmi öğreticisi de değişkenlere değer atamayı bu şekilde anlatır.
Değeri değiştirmek için aynı değişkene yeni bir değer atarsın:
skor = 0
skor = skor + 1
skor += 1
print(skor)
İkinci satır "skorun şu anki değerini al, 1 ekle ve sonucu tekrar skor kutusuna koy" demektir. Üçüncü satırdaki += aynı işin kısa yazılışıdır. Program çalıştığında ekranda 2 yazar.
Aynı örnek yan yana: Scratch ve Python ile skor sayacı
Aynı skor sayacını Scratch'te ve Python'da yazmak, iki dilde de değişkenin aynı mantıkla çalıştığını gösterir: başlangıç değeri verilir, bir olay olduğunda değer değiştirilir ve sonuç ekrana yazılır. Örnekte oyuncu 5 tur boyunca topu yakalamaya çalışıyor; her başarılı yakalamada skor 1 artıyor.
Scratch blokları
- "yeşil bayrak tıklandığında" bloğunu yerleştir.
- Altına "skor değerini 0 yap" bloğunu ekle.
- "5 defa tekrarla" bloğunu ekle.
- Tekrarla bloğunun içine "Topu yakalamak için e yaz sor ve bekle" bloğunu koy.
- Onun altına "eğer ... ise, değilse" bloğunu ekle ve koşul olarak "cevap = e" yaz.
- "Eğer" kısmına "skor değerini 1 değiştir" ve "Yakaladın! söyle" bloklarını koy.
- "Değilse" kısmına "Kaçırdın. söyle" bloğunu koy.
- Tekrarla bloğunun dışına, en alta, "skor" değişken bloğunu içeren bir "söyle" bloğu ekle.
Python kodu
skor = 0
print("Oyun başladı! Skor:", skor)
for tur in range(5):
cevap = input("Topu yakalamak için e yaz: ")
if cevap == "e":
skor = skor + 1
print("Yakaladın! Skor:", skor)
else:
print("Kaçırdın.")
print("Oyun bitti. Toplam skor:", skor)
Blok ve kod karşılaştırması
| Ne yapıyoruz? | Scratch bloğu | Python satırı |
|---|---|---|
| Programı başlatmak | yeşil bayrak tıklandığında | Kod yukarıdan aşağı çalışır |
| Skoru sıfırlamak | skor değerini 0 yap | skor = 0 |
| 5 tur tekrar etmek | 5 defa tekrarla | for tur in range(5): |
| Oyuncudan cevap almak | sor ve bekle, cevap | cevap = input(...) |
| Cevabı kontrol etmek | eğer cevap = e ise | if cevap == "e": |
| Skoru 1 artırmak | skor değerini 1 değiştir | skor = skor + 1 |
| Sonucu göstermek | söyle | print(...) |
Tabloya dikkat edersen, Scratch'teki "cevap" bloğunun da aslında hazır bir değişken olduğunu görürsün; Python'da bunun karşılığı cevap adını verdiğimiz değişkendir. Hangi dille başlaman gerektiğini düşünüyorsan Scratch mi Python mu sorusunu ele alan yazımız karar vermene yardımcı olabilir.
Değişkenlere hangi türde bilgiler konur? Sayı, metin ve doğru/yanlış
Değişkenlere en sık üç tür bilgi konur: sayılar, metinler ve doğru/yanlış değerleri. Kutunun içine ne koyduğun, o değerle neler yapabileceğini belirler; örneğin sayılarla toplama yapılır, metinler ise yan yana eklenir.
| Tür | Örnek değer | Scratch'te | Python'da | Oyunda kullanım |
|---|---|---|---|---|
| Tam sayı | 10, -3 | Değişkene sayı yazılır | int | Skor, can, seviye |
| Ondalıklı sayı | 2.5 | Değişkene ondalıklı sayı yazılır | float | Hız, mesafe |
| Metin | "Ece" | Değişkene yazı yazılır | str | Oyuncu adı, mesajlar |
| Doğru/yanlış | True, False | Ayrı bir tür yoktur; koşul bloklarıyla ya da "evet/hayır" gibi değerlerle sağlanır | bool | Oyun bitti mi, anahtar alındı mı |
Scratch bu türleri kendi içinde otomatik yönettiği için genellikle tür seçmen gerekmez. Python'da da değişkenin türünü ayrıca yazmazsın; Python, atadığın değere bakarak türü kendisi anlar. Bir değerin türünü merak edersen type() fonksiyonunu kullanabilirsin:
yas = 12
isim = "Can"
kazandi = True
print(type(yas))
print(type(isim))
print(type(kazandi))
Python'da metinler tırnak içinde yazılır. "12" bir metindir, 12 ise bir sayıdır. Bu küçük fark, bir sonraki bölümdeki sık hatalardan birinin kaynağıdır.
Değişken adı verirken nelere dikkat etmeli, sık yapılan hatalar neler?
İyi bir değişken adı, kutunun içinde ne olduğunu ilk bakışta anlatır; hataların çoğu ise yanlış yazılmış adlardan, başlangıç değeri verilmemesinden ya da türlerin karıştırılmasından kaynaklanır.
Ad verme kuralları ve önerileri
- Anlamlı ol:
xyerineskor,ayerinekalan_canyaz. Birkaç gün sonra koduna döndüğünde ne yaptığını hatırlamak kolaylaşır. - Python'da boşluk kullanma: İki kelimeyi alt çizgiyle birleştir, örneğin
oyuncu_adi. - Rakamla başlama: Python'da
1skorgeçersiz bir addır,skor1ise geçerlidir. - Büyük-küçük harfe dikkat et: Python'da
Skorveskoriki ayrı değişkendir. - Özel kelimeleri kullanma:
if,for,while,Truegibi Python'un kendi kelimeleri değişken adı olamaz. - Türkçe karakterden kaçın: Python 3 Türkçe harflere izin verse de,
ı,ş,ğgibi harfler yerine İngilizce karakterler kullanmak farklı ortamlarda sorun yaşama riskini azaltır.
Sık yapılan hatalar
- Değişkeni oluşturmadan kullanmak: Python'da hiç değer atanmamış bir değişkeni yazdırmaya çalışırsan
NameErrorhatası alırsın. - Adı farklı yazmak: Bir yerde
skor, başka bir yerdeskryazmak, program açısından iki ayrı kutu demektir. - Sayı ile metni karıştırmak:
input()her zaman metin döndürür. Kullanıcının yazdığı sayıyla hesap yapmak istiyorsan onuint()ile sayıya çevirmelisin:
yas = int(input("Kaç yaşındasın? "))
print("Gelecek yıl", yas + 1, "yaşında olacaksın.")
=ile==işaretini karıştırmak: Tek eşittir değer atar, çift eşittir iki değeri karşılaştırır.- Scratch'te sıfırlamayı unutmak: Oyunun başına "skor değerini 0 yap" bloğunu koymazsan, oyunu yeniden başlattığında skor kaldığı yerden devam eder.
- Scratch'te yanlış kapsam seçmek: "Yalnızca bu kukla için" oluşturduğun bir değişkeni başka bir kukla göremez. Değişken listede görünmüyorsa önce bu ayara bak.
Değişkenlerle pratik yapabileceğin mini görevler
Değişkenleri gerçekten anlamanın en iyi yolu, küçük projelerde kendin kullanmaktır. Aşağıdaki görevleri hem Scratch'te hem Python'da deneyebilirsin; her biri tek bir yeni fikir ekler.
- Can sayacı:
canadında bir değişken oluştur ve başlangıçta 3 yap. Karakter bir engele dokunduğunda canı 1 azalt. Can 0 olduğunda "Oyun bitti" yazdır. - Geri sayım:
suredeğişkenini 10 yap. Her saniye 1 azalt ve değeri ekranda göster. Scratch'te "1 saniye bekle", Python'datime.sleep(1)kullanabilirsin. - Kişisel selamlama: Kullanıcıdan adını iste,
isimdeğişkenine kaydet ve "Merhaba, Ece!" gibi bir mesaj göster. - Mini hesap makinesi: Kullanıcıdan iki sayı al,
sayi1vesayi2değişkenlerine koy, toplamlarınıtoplamdeğişkeninde sakla ve ekrana yazdır. - Seviye atlama: Skor sayacı örneğine
seviyedeğişkeni ekle. Skor her 3 puana ulaştığında seviyeyi 1 artır.
Daha fazla alıştırma istersen Code.org üzerindeki blok tabanlı etkinliklerde de değişken kullanan bölümler bulabilirsin. Bu görevleri bir eğitmen eşliğinde ve kendi hızında ilerleyerek yapmak istersen, birebir Scratch dersleri ya da metin tabanlı kodlamaya geçmeye hazırsan Python dersleri sayfalarını inceleyebilirsin.
Sık Sorulan Sorular
Değişken ile sabit arasındaki fark nedir?
Değişkenin değeri program çalışırken değişebilir, sabitin değeri ise baştan belirlenir ve değiştirilmez. Örneğin bir oyunda skor değişkendir ama haritanın genişliği sabit olabilir. Python'da sabitler için ayrı bir komut yoktur; programcılar bir değerin değiştirilmemesi gerektiğini göstermek için adını MAKS_CAN gibi tamamen büyük harfle yazar.
Programlamadaki değişken matematikteki değişkenle aynı şey mi?
Benzer görünseler de aynı değildir. Matematikte x genellikle bulunması gereken bilinmeyen bir sayıdır, programlamada ise değişken içine değer koyup değiştirdiğin bir kutudur. Bu yüzden skor = skor + 1 matematikte anlamsız görünürken programlamada tamamen doğrudur.
Bir değişkene aynı anda birden fazla değer konabilir mi?
Basit bir değişken aynı anda tek bir değer tutar. Birden fazla değeri bir arada saklamak için Scratch'te "liste", Python'da ise list gibi yapılar kullanılır. Örneğin bir sınıftaki tüm öğrencilerin adlarını tek bir listede tutabilirsin.
Değişken öğrenmek için önce hangi konuyu bilmem gerekir?
Değişkenler, kodlamada öğrenilen ilk kavramlardan biridir; başlamak için önceden bilmen gereken özel bir konu yoktur. Komutların sırayla çalıştığını bilmen ve basit bir programı çalıştırabilmen yeterlidir. Değişkenleri öğrendikten sonra koşullar ve döngüler çok daha anlamlı hale gelir.
Scratch'te oluşturduğum değişken neden her seferinde kaldığı yerden devam ediyor?
Scratch, değişkenin değerini proje durdurulduğunda otomatik olarak sıfırlamaz. Bu yüzden "yeşil bayrak tıklandığında" bloğunun hemen altına değişkene başlangıç değeri veren bir blok koymalısın. Böylece oyun her başladığında değer baştan ayarlanır.
Sonuç
Değişken, programın bilgi sakladığı etiketli bir kutudur ve skor, can ya da oyuncu adı gibi değişen her şeyi takip etmeni sağlar. Scratch'te bloklarla, Python'da tek bir atama satırıyla oluşturulsa da mantığı iki dilde de aynıdır. Değişkenleri bir eğitmenle uygulamalı olarak denemek istersen ücretsiz deneme dersi ile başlayabilirsin.
Kaynaklar
- Scratch resmi sitesi — Değişken bloklarını çevrim içi editörde görüp hemen deneyebileceğin resmi Scratch platformu.
- Python resmi öğreticisi (The Python Tutorial) — Python'da değişken atamayı ve temel veri türlerini anlatan resmi belge.
- Code.org — Değişkenlerle ek pratik yapabileceğin blok tabanlı kodlama etkinlikleri sunan platform.





