🔍 Giriş
Python, sadeliği ve okunabilirliği ile öne çıkan modern bir programlama dilidir. Ancak Python’da sağlam ve doğru kod yazmanın temeli, değişkenlerin ve veri türlerinin nasıl çalıştığını iyi anlamaktan geçer. Bu rehberde, Python’da değişkenler nasıl tanımlanır, veri türleri nelerdir ve hangi durumlarda hangi veri tipi kullanılmalıdır gibi konuları detaylı şekilde ele alacağız.
Bu yazı sayesinde;
-
Python değişken tanımı ve kuralları,
-
Tüm yerleşik (built-in) veri türleri,
-
Dinamik tipleme,
-
Tip dönüşümleri (type casting),
-
Koleksiyon veri tipleri (list, tuple, dict, set) gibi kavramları detaylıca öğreneceksiniz.
Hazırsanız başlayalım!
🧠 1. Değişken Nedir?
Python’da değişken, bir veriyi hafızada tutmak ve gerektiğinde bu veriye kolayca erişmek için kullanılan isimlendirilmiş yapılardır. Programlama açısından değişkenler; kullanıcıdan alınan verileri saklamak, işlemler yapmak ve verilerle etkileşim kurmak için kullanılır.
🧾 Değişken Tanımlama (Syntax)
Python’da değişken tanımlamak oldukça basittir. Sadece bir isim yazılır ve eşittir (=
) operatörüyle bir değer atanır:
pythonisim = "Ahmet" yas = 25 dogum_yili = 2025 - yas
Yukarıdaki örnekte:
-
isim
değişkeni bir string (metin), -
yas
değişkeni bir tam sayı (integer), -
dogum_yili
değişkeni ise bir matematiksel işlem sonucu elde edilen bir integer’dır.
📌 2. Python’da Değişken Tanımlama Kuralları
Python’da geçerli bir değişken ismi tanımlamak için bazı kurallar vardır. Bu kuralları ihlal etmek hata ile sonuçlanır.
✅ Geçerli Kurallar
-
Değişken isimleri harf (a-z, A-Z), rakam (0-9) ve alt çizgi (_) içerebilir.
-
Değişken isimleri rakamla başlayamaz.
-
Büyük ve küçük harf duyarlıdır (
isim
veIsim
farklıdır). -
Python’un rezervli anahtar kelimeleri değişken ismi olarak kullanılamaz (örnek:
class
,for
,if
).
🚫 Geçersiz Örnekler:
python2yas = 20 # Başlangıçta rakam olamaz for = "deneme" # 'for' bir anahtar kelimedir isim-soyisim = "Ali Veli" # '-' karakteri geçersiz
🔠 3. Python Veri Türleri (Data Types)
Python’da her veri bir tür (type) ile tanımlanır. Bu türler, verinin nasıl saklandığını ve işlem gördüğünü belirler. Python, dinamik olarak tür belirleyen bir dildir. Yani bir değişkenin türünü önceden belirtmenize gerek yoktur.
📋 Temel Veri Türleri
Veri Türü | Açıklama | Örnek |
---|---|---|
int |
Tam sayılar | 10 , -5 , 1000 |
float |
Ondalıklı sayılar | 3.14 , -0.5 |
str |
Metin (string) | "Python" , 'Merhaba' |
bool |
Mantıksal (True/False) | True , False |
NoneType |
Boş değer | None |
🔢 4. Sayısal Veri Türleri: int ve float
int
(Integer)
Tam sayılar için kullanılır. Matematiksel işlemler için idealdir.
pythonx = 10 y = -200 z = x + y # -190
float
(Floating Point)
Ondalıklı sayıları ifade eder.
pythonpi = 3.14159 sayi = 10.0
Python’da integer ve float birlikte işlem gördüğünde sonuç da float olur:
pythona = 5 b = 2 print(a / b) # 2.5
🔤 5. String Veri Türü (str)
Metinsel veriler için kullanılır. Tek tırnak ' '
, çift tırnak " "
ya da üçlü tırnak ''' '''
ile tanımlanabilir.
pythonad = "Ali" mesaj = 'Merhaba, Python!'
String Biçimlendirme (f-string)
pythonisim = "Ahmet" print(f"Merhaba, {isim}!") # Merhaba, Ahmet!
✅ 6. Boolean (Mantıksal) Veri Türü:
bool
Python'da mantıksal işlemler için kullanılan veri tipi Boolean (bool) olarak adlandırılır. Bu tür sadece iki değer alabilir:
True
veyaFalse
.pythonaktif_mi = True kayitli_mi = False
Boolean veri türü özellikle kontrol yapılarında (
if
,while
, vb.) yaygın şekilde kullanılır.Karşılaştırma Operatörleri ile Kullanımı:
pythonyas = 18 print(yas >= 18) # True
Tip Kontrolü:
pythonprint(type(True)) # <class 'bool'>
❌ 7. NoneType:
None
DeğeriPython’da bir değişkene henüz bir değer atanmamışsa veya fonksiyon herhangi bir şey döndürmüyorsa
None
kullanılır. Bu veri tipiNoneType
sınıfındandır.pythonsonuc = None def islem(): pass print(type(sonuc)) # <class 'NoneType'>
None
, genellikle bir değişkenin boş ya da bilinmeyen bir değere sahip olduğunu ifade etmek için kullanılır.
📦 8. Koleksiyon Veri Türleri
Python’da birden fazla veriyi tek bir yapıda tutmak için kullanılan veri türlerine koleksiyonlar denir. En yaygın koleksiyonlar şunlardır:
📚 a) List (Liste)
Değiştirilebilir (mutable) ve sıralı veri koleksiyonudur.
pythonmeyveler = ["elma", "armut", "muz"] print(meyveler[0]) # elma
Listeye eleman eklemek:
pythonmeyveler.append("çilek")
📦 b) Tuple (Demet)
Değiştirilemez (immutable) koleksiyonlardır. Performans avantajı sunar.
pythonkoordinatlar = (40.7128, -74.0060) print(koordinatlar[1]) # -74.0060
📙 c) Dictionary (Sözlük)
Anahtar-değer (key-value) çiftlerinden oluşan yapıdır.
pythonkisi = { "ad": "Ahmet", "yas": 30, "meslek": "mühendis" } print(kisi["ad"]) # Ahmet
🧩 d) Set (Küme)
Benzersiz elemanlar içeren, sırasız koleksiyondur.
pythonsayilar = {1, 2, 3, 3, 2, 1} print(sayilar) # {1, 2, 3}
🔄 9. Tip Dönüşümleri (Type Casting)
Python’da değişken türleri arasında dönüşüm yapılabilir. Bu işleme type casting denir.
Sayıdan String'e
pythonsayi = 10 metin = str(sayi) # "10"
String'den Sayıya
pythondeger = "5" sayi = int(deger) # 5
Float’tan Integer’a
pythonondalikli = 3.99 tam_sayi = int(ondalikli) # 3
Listeyi Küme Yapma
pythonliste = [1, 2, 2, 3] kume = set(liste) # {1, 2, 3}
🧪 10. Tip Kontrolü:
type()
veisinstance()
type()
FonksiyonuBir değişkenin veri tipini kontrol eder.
pythonx = "Merhaba" print(type(x)) # <class 'str'>
isinstance()
FonksiyonuBelirli bir veri tipine ait olup olmadığını kontrol eder.
pythonprint(isinstance(x, str)) # True
🌍 11. Değişkenin Kapsamı (Variable Scope)
Python’da bir değişkenin nerede tanımlandığı, o değişkenin erişim alanını belirler. Buna scope (kapsam) denir. Değişkenler genellikle şu kapsam türlerinden birine sahiptir:
🧩 a) Local Scope (Yerel Kapsam)
Bir fonksiyon içinde tanımlanan değişken, sadece o fonksiyon içinde geçerlidir.
pythondef fonksiyon(): mesaj = "Merhaba" print(mesaj) fonksiyon() # print(mesaj) # Hata: mesaj değişkeni global kapsamda yok
🌐 b) Global Scope (Genel Kapsam)
Fonksiyon dışında tanımlanan değişkenler, program boyunca kullanılabilir.
pythonmesaj = "Selam" def yazdir(): print(mesaj) yazdir() # Selam
🧠
global
Anahtar KelimesiFonksiyon içinden global değişkeni değiştirmek için
global
anahtar kelimesi kullanılır:pythonsayac = 0 def arttir(): global sayac sayac += 1
🛑 12. Sabit Değişkenler (Constants)
Python’da sabit tanımlama için özel bir anahtar kelime yoktur. Ancak geleneksel olarak, sabitler büyük harflerle yazılır:
pythonPI = 3.14159 GUN_SAYISI = 7
Bu değişkenlerin değeri değiştirilmemelidir, ancak Python bunu teknik olarak engellemez.
⚙️ 13. İleri Seviye Veri Türleri
🧵 a)
bytes
Sabit bayt dizisini temsil eder. Genellikle dosya işlemleri ve düşük seviye veri iletiminde kullanılır.
pythonveri = b"Python" print(type(veri)) # <class 'bytes'>
🧩 b)
bytearray
Değiştirilebilir bayt dizisidir.
pythonveri = bytearray(4) veri[0] = 65 print(veri) # bytearray(b'Ax00x00x00')
🔬 c)
memoryview
Veri kopyalamadan büyük veri bloklarını işlemek için kullanılır.
pythonv = memoryview(b"Python") print(v[0]) # 80 (ASCII değeri)
🧮 14. Python 3.10+
match-case
ile Veri Tipi KontrolüPython 3.10 ile gelen match-case yapısı, switch-case'e benzer ama çok daha güçlüdür.
pythondef veri_turu_bul(veri): match veri: case int(): print("Tam sayı") case float(): print("Ondalıklı sayı") case str(): print("Metin") case list(): print("Liste") case _: print("Bilinmeyen tür") veri_turu_bul(3.14) # Ondalıklı sayı
✅ 15. En İyi Uygulamalar ve İpuçları
✅ Anlamlı İsimlendirme
a
,b
,x1
gibi anlamsız isimler yerinefiyat
,kullanici_adi
gibi açıklayıcı isimler kullanın.🚫 Sihirli Sayılardan Kaçının
Kodda doğrudan rakam yazmak yerine sabit tanımlayın:
python# Kötü: if skor > 90: print("Mükemmel") # İyi: BASARI_SKORU = 90 if skor > BASARI_SKORU: print("Mükemmel")
📛 Küresel Değişkenleri Sınırlayın
Gereksiz yere global değişken kullanımı kod karmaşasını artırır. Mümkün olduğunca fonksiyonlara parametre geçin.
⏳ 16. Python'da Değişkenin Yaşam Süresi (Variable Lifetime)
Python’da bir değişkenin yaşam süresi, onun bellekte ne kadar süreyle var olacağını belirler.
🔁 Fonksiyon İçindeki Değişkenler
Fonksiyon içinde tanımlanan değişkenler, fonksiyon sona erdiğinde bellekten silinir.
pythondef hesapla(): sonuc = 42 print(sonuc) hesapla() # print(sonuc) # Hata verir, çünkü 'sonuc' fonksiyon dışında tanımlı değil
♻️ Garbage Collector (Çöp Toplayıcı)
Python'da kullanılmayan değişkenler otomatik olarak sistem tarafından temizlenir. Bu işlem, Python’un çöp toplayıcı (Garbage Collector) mekanizmasıyla gerçekleştirilir.
pythonimport gc gc.collect() # Manuel temizlik çağrısı (gerekmese de kullanılabilir)
♻️ 17. Mutable ve Immutable Veri Türleri
Python’da veri türleri değiştirilebilir (mutable) veya değiştirilemez (immutable) olarak sınıflandırılır. Bu ayrım, değişkenlerle çalışırken çok önemlidir.
🔐 Immutable Türler
Bu türlerde tanımlanan bir değişken değiştirilemez, yalnızca yeniden atanabilir.
int
float
str
tuple
bool
pythonx = 5 x = x + 1 # x yeniden atandı, önceki 5 değeri değişmedi, yeni bir nesne oluşturuldu
🔓 Mutable Türler
Bu türlerde değişkenin içeriği değiştirilebilir.
list
dict
set
bytearray
pythonliste = [1, 2, 3] liste.append(4) # Listeye yeni eleman eklendi, nesne değişmedi
📌 18. Python'da Değişkenler ve Referans Yapısı
Python’da tüm değişkenler bir nesneye referans verir. Bu, değişkenin aslında veriyi değil, bellekteki adresini tuttuğu anlamına gelir.
🧪 Örnek:
pythona = [1, 2, 3] b = a b.append(4) print(a) # [1, 2, 3, 4] çünkü a ve b aynı listeye referans verir
📛
id()
FonksiyonuBir nesnenin bellek adresini verir:
pythonx = 100 print(id(x))
🔄 Kopyalama (copy)
Eğer ayrı bir kopya istiyorsanız,
copy()
metodunu kullanmalısınız:pythonimport copy liste1 = [1, 2, 3] liste2 = copy.copy(liste1) liste2.append(4) print(liste1) # [1, 2, 3] print(liste2) # [1, 2, 3, 4]
🧠 19. Geliştiriciler İçin Uygulamalı Değişken Stratejileri
🎯 a) Tip Tahmini ile Kodunuzu Güçlendirin
Python 3.6+ ile gelen type hints (tip ipuçları) sayesinde kod okunabilirliği ve hata kontrolü artırılır:
pythondef topla(x: int, y: int) -> int: return x + y
📐 b)
typing
Modülü ile Gelişmiş Tiplemepythonfrom typing import List, Dict def ortalama(liste: List[float]) -> float: return sum(liste) / len(liste)
🔄 c) Dinamik Değişken Tipi Değişimi
Bazı durumlarda değişken tipi koşullara göre değişebilir, ancak bu karmaşaya yol açabilir. Mümkün olduğunca sabit tür kullanımı tercih edilir.
python# Tavsiye edilmez: veri = 10 veri = "on"
🧰 20. Gerçek Hayattan Değişken Kullanımı: Örnek Senaryolar
🌐 Web Formu Verisi
pythonkullanici_adi = input("Adınız: ") sifre = input("Şifreniz: ") dogrulandi_mi = True
📊 Veri Analizi
pythonveriler = [23, 45, 67, 89] ortalama = sum(veriler) / len(veriler)
🗂️ Veritabanı Kayıt Yapısı
pythonkullanici = { "ad": "Ayşe", "yas": 28, "email": "ayse@example.com" }
🧾 Sonuç
Python'da değişkenler ve veri türleri, kodun en temel yapı taşlarıdır. Bu konulara hâkim olmak, yazılım geliştirmenin neredeyse her alanında büyük önem taşır. Bu makalede;
Değişkenlerin tanımı ve kapsamı,
Python’un temel ve koleksiyon veri tipleri,
Tip dönüşümleri, mutable-immutable farkları,
Bellek yönetimi, yaşam süresi ve referans yapısı
gibi konulara derinlemesine değindik.
Bu bilgilerle birlikte artık daha okunabilir, güvenli ve optimize edilmiş Python kodları yazabilir, veriyle etkili biçimde çalışabilirsiniz.
Average Rating: 5.0 out of 5 (1 votes)5 stars14 stars03 stars02 stars01 star0Review Python’da Değişkenler ve Veri Türleri.
.