Bir cümlelik özet
Değişken, bir bilgiyi isimlendirip saklayan bir kutudur; bu bilginin türü (sayı, ondalık, metin veya doğru/yanlış) programın onu nasıl kullanacağını belirler.
Neden önemli?
İlk programında print("Merhaba") yazarak ekrana sabit bir metin yazdırdın. Ama gerçek programlar bilgiyi saklar, değiştirir ve hesaplar. Bir oyun senin puanını tutar, bir uygulama senin adını hatırlar, bir robot mesafe ölçümünü kaydeder.
Bütün bunların temelinde değişken vardır. Değişkenleri ve türlerini anlamadan gerçek bir program yazmak çok zordur. Bu ders, sonraki her dersin üzerine kurulacağı temeli atıyor.
Değişken nedir?
Değişken, bir değere isim veren bir etikettir. Değeri bir kutuya koyduğunu, kutunun üstüne de bir isim yazdığını düşün. Daha sonra o ismi söyleyerek kutunun içindekine ulaşırsın.
Python'da değer atamak için eşittir işaretini (=) kullanırız.
ad = "Doruk"
yas = 13
print(ad)
print(yas)
Bu program şunu yazdırır:
Doruk
13
Buradaki = işareti "eşittir" demek değildir; "sağdaki değeri soldaki isme ata" demektir. Yani yas = 13 cümlesi "yas kutusuna 13 koy" anlamına gelir. Python bu satırları yukarıdan aşağıya, tek tek çalıştırır; bu yüzden bir değişkeni kullanmadan önce ona bir değer atamış olmalısın.
Değeri değiştirmek
Değişkenin adı "değişken" çünkü içindeki değer değişebilir. Yeni bir atama yaptığımızda eski değer silinir.
puan = 0
print(puan)
puan = 10
print(puan)
Ekranda önce 0, sonra 10 görürsün. İkinci satır ilkinin üzerine yazdı.
Anlamlı isimlendirme
Bir değişkene istediğin ismi verebilirsin, ama iyi isimler kodu okunur yapar. x yerine yas, a yerine ogrenci_sayisi yazmak, kodu haftalar sonra bile anlaşılır tutar.
Birkaç kural vardır:
- İsim harf veya alt çizgi (
_) ile başlar, rakamla başlayamaz. - Boşluk kullanılamaz; kelimeler
alt_cizgiile ayrılır. - Büyük/küçük harf farklıdır:
adileAdiki ayrı değişkendir.
dogum_yili = 2013
guncel_yil = 2026
Türkçe karakter (ç, ş, ğ) çalışır ama karışıklığı önlemek için sade İngilizce harfler tercih edilir. İyi seçilmiş isimler, kodu bir yorum satırı eklemeden bile kendi kendini açıklar hâle getirir.
Temel veri türleri
Her değerin bir türü (İngilizcesi *type*) vardır. Tür, o değerin ne olduğunu ve onunla ne yapabileceğini belirler. Başlangıç için dört tür yeterlidir.
int — tam sayı
int (integer) ondalıksız tam sayıları tutar: 0, 13, -5, 2026.
yas = 13
kalem_sayisi = -4
float — ondalıklı sayı
float ondalıklı (kesirli) sayıları tutar. Ondalık ayırıcı olarak nokta kullanılır, virgül değil.
boy = 1.62
sicaklik = 36.5
str — metin (dizgi)
str (string) metin tutar. Metni tırnak içine alırız; tek ('...') veya çift ("...") tırnak olabilir.
ad = "Doruk"
sehir = 'İzmir'
Dikkat: "13" bir metindir, 13 ise bir sayıdır. Tırnak, değeri metne çevirir.
bool — doğru/yanlış
bool (boolean) yalnız iki değer alır: True (doğru) veya False (yanlış). Baş harfleri büyük yazılır.
sinavi_gecti = True
yagmur_yagiyor = False
bool, sonraki derslerde karar verme (koşullar) için çok işine yarayacak.
Türü öğrenmek: type()
Bir değişkenin türünü merak edersen type() fonksiyonunu kullan.
ad = "Doruk"
yas = 13
boy = 1.62
print(type(ad))
print(type(yas))
print(type(boy))
Çıktı:
<class 'str'>
<class 'int'>
<class 'float'>
type() sana kutunun içindeki değerin türünü söyler. Hata ayıklarken çok yardımcı olur.
Tür dönüşümü
Bazen bir türü başka bir türe çevirmemiz gerekir. Örneğin metin hâlindeki bir sayıyla toplama yapamayız; önce onu sayıya dönüştürmeliyiz. Buna tür dönüşümü denir.
int(...)değeri tam sayıya çevirir.float(...)değeri ondalıklı sayıya çevirir.str(...)değeri metne çevirir.
Metni sayıya çevirmek
metin_yas = "13"
sayi_yas = int(metin_yas)
gelecek_yas = sayi_yas + 5
print(gelecek_yas)
Bu program 18 yazdırır. "13" metnini int() ile sayıya çevirmeseydik, üzerine 5 ekleyemezdik.
Sayıyı metne çevirmek
Bir sayıyı bir metinle birleştirmek istersek önce onu str() ile metne çevirmeliyiz.
yas = 13
mesaj = "Yaşım " + str(yas)
print(mesaj)
Çıktı: Yaşım 13. Eğer str(yas) yerine sadece yas yazsaydık, Python metinle sayıyı toplayamadığı için hata verirdi.
Mini uygulama
Şimdi öğrendiklerini birleştirelim. Bir kişinin adını ve doğum yılını saklayan, sonra yaşını hesaplayan küçük bir program yazalım.
ad = "Doruk"
dogum_yili = 2013
guncel_yil = 2026
yas = guncel_yil - dogum_yili
print("Ad: " + ad)
print("Yaş: " + str(yas))
Çıktı:
Ad: Doruk
Yaş: 13
Bu programda üç farklı tür bir arada çalışıyor: ad bir str, dogum_yili ve guncel_yil birer int. Yaşı yazdırırken sonucu str() ile metne çevirdik.
Kendi denemen: ad ve dogum_yili değerlerini kendinle değiştir, programı çalıştır ve doğru yaşı gösterdiğinden emin ol.
Uygulama laboratuvarı: Değişkenler ve Veri Türleri
Değişkenler ve Veri Türleri 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 Anlamlı isimlendirme arasındaki ilişkiyi kullanarak çalışan kısa bir Python 3 programı, örnek girdiler ve beklenen çıktılar 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: belirli aralıktaki sayıyı tahmin ettiren küçük oyun. Dersin ana hedefi “Değişken atamayı; int, float, str ve bool türlerini ve tür dönüşümünü öğ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
- Kod Python 3 sözdizimiyle çalışıyor mu?
- Değişken ve fonksiyon adları amacı açıklıyor mu?
- Boş, yanlış türde ve sınırdaki girdiler denendi mi?
- Hata mesajı kullanıcıya neyi düzeltmesi gerektiğini söylüyor mu?
- Aynı kod gereksiz tekrar olmadan yeniden kullanılabiliyor mu?
“Değişkenler ve Veri Türleri” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın belirli aralıktaki sayıyı tahmin ettiren küçük oyun 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 Anlamlı isimlendirme ilişkisini daha küçük adımlara bölerek düzelt.
Sık yapılan hatalar
Tırnak koymayı unutmak
ad = Doruk
Doruk tırnaksız yazılınca Python onu bir değişken adı sanır ve NameError verir. Metin her zaman tırnak içine alınır: ad = "Doruk".
Metinle sayıyı toplamaya çalışmak
yas = 13
print("Yaş: " + yas)
Bu satır TypeError verir çünkü metinle sayı doğrudan birleştirilemez. Çözüm: str(yas) kullanmak.
Ondalıkta virgül kullanmak
boy = 1,62 yazmak istediğin sonucu vermez; Python bunu iki ayrı değer sanar. Ondalıkta nokta kullanılır: boy = 1.62.
Karışık isimler seçmek
a, x1, deneme2 gibi isimler kodu okunmaz yapar. yas, dogum_yili gibi anlamlı isimler seç.
Güvenlik notu
Bu ders tamamen kendi bilgisayarında, kendi yazdığın kodla çalışır ve bir tehlike içermez. Yine de iyi bir alışkanlık olarak: yalnız kendi yazdığın veya güvendiğin kodu çalıştır. Ayrıca örneklerde gerçek şifre, adres veya telefon gibi kişisel bilgileri kod içine yazma; öğrenirken takma isim ve örnek değerler kullan.
Ders özeti
- Değişken, bir değere isim veren etikettir; atama için
=kullanılır. - Anlamlı isimler (
yas,dogum_yili) kodu okunur ve anlaşılır tutar. - Dört temel tür vardır:
int(tam sayı),float(ondalık),str(metin),bool(doğru/yanlış). type()bir değerin türünü gösterir ve hata ayıklamada yardımcı olur.int(),float()vestr()ile bir türü başka bir türe çevirebiliriz.
Kontrol soruları
puan = 100satırında=işareti ne anlama gelir?1.62değerinin türü hangisidir:int,float,str, yoksaboolmü?"7"ile7arasındaki fark nedir?yas = 13ikenprint("Yaş: " + yas)neden hata verir ve nasıl düzeltilir?sinavi_gecti = Truedeğişkeninin türü nedir?
Cevaplar
- "Sağdaki değeri soldaki isme ata" anlamına gelir; yani
100değeripuandeğişkenine konur. Matematikteki "eşittir" değildir. float, çünkü ondalıklı (kesirli) bir sayıdır."7"tırnak içinde olduğu için bir metindir (str);7ise bir tam sayıdır (int). Metinle aritmetik toplama yapılamaz, önceint("7")ile çevirmek gerekir.- Metin (
str) ile sayı (int) doğrudan birleştirilemediği içinTypeErrorverir. Düzeltmek için sayıyı metne çevirmeliyiz:print("Yaş: " + str(yas)). bool, çünkü değeriTrue(doğru) veyaFalse(yanlış) olur.
Kaynak ve doğrulama notu
“Değişkenler ve Veri Türleri” dersi için doğrulama odağı Değişken nedir? ile Anlamlı isimlendirme arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Kod örnekleri Python 3 sözdizimi esas alınarak hazırlanmıştır. Çalıştırma ortamına göre küçük farklar görülebileceği için örnekler önce güvenli bir çevrim içi editörde veya yerel geliştirme ortamında denenmelidir.
Sonraki ders
Kullanıcıdan Veri Alma: input() fonksiyonuyla kullanıcıdan bilgi alıp değişkenlere kaydetmeyi ve gelen metni doğru türe çevirmeyi öğreneceğiz.