Bir cümlelik özet
Değişken, bir bilgiyi bir isimle saklayıp daha sonra o ismi kullanarak bilgiye ulaşmamızı ve onu güncellememizi sağlayan bir kutudur.
Neden önemli?
Bir programın çoğu zaman bir şeyleri hatırlaması gerekir: oyuncunun kaç puan topladığını, robotun ölçtüğü mesafeyi, kaç kez döndüğünü. Bu bilgileri saklayamazsak program her adımda her şeyi sıfırdan yapmak zorunda kalır.
Değişkenler tam da bunu çözer. Bir bilgiyi bir isme bağlarız, sonra o ismi kullanarak bilgiyi okur veya değiştiririz. Değişkenleri öğrendiğimizde, programlarımız artık sadece adım atmakla kalmaz; ne olduğunu takip eder ve buna göre karar verir.
Değişken nedir?
Bir değişkeni, üstünde bir etiket olan bir kutu gibi düşünebilirsin. Kutunun içine bir bilgi koyarız, üstüne de bir isim yazarız. Sonra o ismi söylediğimizde bilgisayar doğru kutuya bakar.
Diyelim ki bir oyun oynuyorsun ve puanını takip etmek istiyorsun. puan adında bir kutu açar, içine 0 koyarsın. Puan kazandıkça bu kutudaki sayıyı büyütürsün.
Değer atama
Bir değişkene bilgi koymaya atama denir. Türkçe sözde kodda bunu şöyle yazabiliriz:
puan ← 0
Buradaki ok, "sağdaki değeri soldaki kutuya koy" demektir. Python'da aynı iş = işaretiyle yapılır:
puan = 0
Dikkat: buradaki = bir eşitlik değil, bir atamadır. "Puan sıfıra eşittir" değil, "puan kutusuna sıfır koy" diye okumak daha doğrudur.
Değeri güncelleme
Bir kutunun içindekini istediğimiz zaman değiştirebiliriz. Yeni değer, eskisinin yerini alır.
puan ← 0
puan ← puan + 10
İkinci satır şunu söyler: "puan kutusundaki değeri al, üstüne 10 ekle, sonucu tekrar puan kutusuna koy." Yani puan artık 10 olur.
Anlamlı isimlendirme
Değişkenin ismini biz seçeriz, ama iyi bir isim çok işe yarar. İsim, kutunun içinde ne olduğunu açıkça anlatmalıdır.
| Zayıf isim | Daha iyi isim |
|---|---|
x | puan |
a | mesafe |
sy | deneme_sayisi |
x yazınca, üç gün sonra kendi koduna baktığında ne olduğunu hatırlamazsın. mesafe yazınca, isim kendini anlatır. İyi isimler kodu bir başkası için de, gelecekteki kendin için de okunur kılar.
Sayaç ve biriktirici
Değişkenlerin en sık kullanıldığı iki kalıp vardır. İkisi de döngülerle birlikte çalışır.
Sayaç
Sayaç, bir şeyin kaç kez olduğunu tutan bir değişkendir. Her seferinde bir artar.
sayac ← 0
5 kez tekrarla
sayac ← sayac + 1
Döngü bitince sayac değeri 5 olur. Bir robotta bu, kaç engel gördüğünü veya kaç tur attığını saymak için kullanılabilir.
Biriktirici
Biriktirici, sayıları toplayıp biriktiren bir değişkendir. Sayaçtan farkı, her adımda 1 yerine değişen bir miktar eklemesidir.
toplam ← 0
toplam ← toplam + 8
toplam ← toplam + 12
Burada toplam sırayla 0, 8 ve 20 olur. Bir sepetteki ürünlerin fiyatını toplamak buna güzel bir örnektir.
Basit türler
Bir değişkende sadece sayı saklamak zorunda değiliz. En çok kullanılan üç tür şudur:
- Sayı:
puan = 0,mesafe = 12.5gibi. Bunlarla işlem yapabiliriz. - Metin:
isim = "Ada"gibi. Tırnak içinde yazılır, harflerden oluşur. - Doğru/Yanlış:
oyun_bitti = Falsegibi. Sadece iki değer alabilir: doğru (True) veya yanlış (False).
Doğru/yanlış türü özellikle karar vermede işe yarar: robot bir düğmeye basıldı mı, oyun bitti mi gibi durumları tutar.
Günlük hayattan örnek: Puan sayacı
Bir toplama oyunu düşün. Her yıldız 10 puan. Oyuncu 3 yıldız topluyor. Puanı bir değişkende tutalım.
puan = 0
puan = puan + 10 # birinci yıldız
puan = puan + 10 # ikinci yıldız
puan = puan + 10 # üçüncü yıldız
print("Toplam puan:", puan)
Bu program Toplam puan: 30 yazar. Aynı işi bir döngüyle daha kısa yazabiliriz:
puan = 0
for yildiz in range(3):
puan = puan + 10
print("Toplam puan:", puan)
Burada puan bir biriktiricidir. Döngü her döndüğünde kutudaki değeri büyütür.
Robotik örneği: Ölçülen mesafeyi saklamak
Bir robotun önündeki engele olan uzaklığı ölçtüğünü düşün. Robot bu ölçümü bir değişkende saklar, sonra ona bakarak karar verir.
mesafe = 25 # sensörden okunan santimetre değeri
if mesafe < 10:
print("Çok yakın, dur!")
else:
print("Yol açık, ilerle.")
Sensör yeni bir ölçüm yaptığında mesafe değişkenini güncelleriz; program aynı kalır ama karar yeni değere göre verilir. Değişken sayesinde robot "gördüğünü" hatırlayabilir.
Mini uygulama
Bir sınıfta üç öğrencinin sınav notlarını topla ve ortalamasını bul.
toplamadında bir biriktirici oluştur, başlangıç değeri 0 olsun.- Üç notu sırayla
toplamdeğişkenine ekle (örneğin 70, 85, 100). ortalamaadında yeni bir değişken oluştur vetoplamı 3'e böl.- Sonucu ekrana yazdır.
Kendi çözümünü yazdıktan sonra şunu dene: notları değiştir ve programın ortalamayı doğru güncellediğini gör.
Uygulama laboratuvarı: Değişkenler: Bilgiyi Saklamak
Değişkenler: Bilgiyi Saklamak konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Değişken nedir? ile Değeri güncelleme arasındaki ilişkiyi kullanarak açık bir algoritma, sözde kod ve test tablosu hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.
Görev senaryosu
Şu senaryoyu ele al: günlük görevleri öncelik sırasına koyan küçük bir planlayıcı. Dersin ana hedefi “Bilgiyi bir isimle saklayıp güncellemeyi; sayaç ve biriktiricileri değişkenlerle kurmayı öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.
Başarı ölçütleri
- Adımlar açık ve tek anlamlı mı?
- Başlangıç ve bitiş koşulu belli mi?
- Normal, sınır ve hatalı durumlar denendi mi?
- Gereksiz tekrar veya adım var mı?
- Başka biri algoritmayı aynı sonuçla uygulayabiliyor mu?
“Değişkenler: Bilgiyi Saklamak” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın günlük görevleri öncelik sırasına koyan küçük bir planlayıcı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Değişken nedir? ve Değeri güncelleme ilişkisini daha küçük adımlara bölerek düzelt.
Sık yapılan hatalar
Tanımlamadan kullanmak
Bir değişkeni ilk kez kullanmadan önce ona bir değer atamalısın. Boş kutuya bakmak hataya yol açar.
puan = puan + 10 # HATA: puan henüz tanımlı değil
Doğrusu, önce puan = 0 yazıp kutuyu oluşturmaktır.
= ile == karışıklığı
Python'da = atama yapar (kutuya koy), == ise eşit mi diye sorar. Bu ikisi çok karıştırılır.
puan = 10 # atama: puan kutusuna 10 koy
puan == 10 # soru: puan 10'a eşit mi?
Bir koşulda karşılaştırma yaparken == kullanılır. Bunu bir sonraki derste daha ayrıntılı göreceğiz.
Aynı ismi farklı amaçla kullanmak
Bir değişkeni puan için açıp sonra aynı ismi mesafe için kullanırsan kafan karışır ve hata yaparsın. Her kutunun tek bir işi olsun; farklı bilgiler için farklı isimler kullan.
Ders özeti
- Değişken, bir bilgiyi bir isimle saklayan ve sonradan güncellenebilen bir kutudur.
- Değer atama, sağdaki değeri soldaki değişkene koymaktır; Python'da
=ile yapılır. - Anlamlı isimler kodu okunur ve anlaşılır kılar.
- Sayaç bir şeyi birer birer sayar; biriktirici değişen miktarları toplar.
- Değişkenler sayı, metin ve doğru/yanlış gibi farklı türlerde bilgi tutabilir.
Kontrol soruları
- Değişken nedir ve ne işe yarar?
puan ← puan + 10satırı ne yapar?- Sayaç ile biriktirici arasındaki fark nedir?
- Python'da
=ile==arasındaki fark nedir? mesafe = 25satırındamesafehangi türde bir bilgi tutar?
Cevaplar
- Değişken, bir bilgiyi bir isimle saklayan bir kutudur. Bilgiyi sonradan o isim üzerinden okumamızı ve güncellememizi sağlar.
puankutusundaki değeri alır, üstüne 10 ekler ve sonucu tekrarpuankutusuna koyar; yani puanı 10 artırır.- Sayaç her adımda değeri birer birer artırır (kaç kez olduğunu tutar). Biriktirici ise her adımda değişen bir miktarı ekleyerek toplar.
=atama yapar, yani değişkene bir değer koyar.==ise iki şeyin birbirine eşit olup olmadığını sorar (karşılaştırma).mesafebir sayı tutar (25). Bu sayı ile işlem yapabilir, örneğin 10'dan küçük mü diye karşılaştırabiliriz.
Kaynak ve doğrulama notu
“Değişkenler: Bilgiyi Saklamak” dersi için doğrulama odağı Değişken nedir? ile Değeri güncelleme arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Bu dersteki algoritmalar, örnek girdiler elle izlenerek ve beklenen çıktılarla karşılaştırılarak doğrulanmıştır. Sözde kod, belirli bir programlama diline bağlı kalmadan düşünme sırasını görünür kılmak için kullanılır.
Sonraki ders
Operatörler ve Karşılaştırmalar: Değişkenlerdeki değerleri toplama, çıkarma ve birbiriyle karşılaştırma yollarını öğreniyoruz.