Python’da Değişkenler ve Veri Türleri

 


🔍 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:

python

isim = "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 ve Isim farklıdır).

  • Python’un rezervli anahtar kelimeleri değişken ismi olarak kullanılamaz (örnek: class, for, if).

🚫 Geçersiz Örnekler:

python

2yas = 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.

python

x = 10 y = -200 z = x + y # -190

float (Floating Point)

Ondalıklı sayıları ifade eder.

python

pi = 3.14159 sayi = 10.0

Python’da integer ve float birlikte işlem gördüğünde sonuç da float olur:

python

a = 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.

python

ad = "Ali" mesaj = 'Merhaba, Python!'

String Biçimlendirme (f-string)

python

isim = "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 veya False.

python

aktif_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ı:

python

yas = 18 print(yas >= 18) # True

Tip Kontrolü:

python

print(type(True)) # <class 'bool'>

❌ 7. NoneType: None Değeri

Python’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 tipi NoneType sınıfındandır.

python

sonuc = 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.

python

meyveler = ["elma", "armut", "muz"] print(meyveler[0]) # elma

Listeye eleman eklemek:

python

meyveler.append("çilek")

📦 b) Tuple (Demet)

Değiştirilemez (immutable) koleksiyonlardır. Performans avantajı sunar.

python

koordinatlar = (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.

python

kisi = { "ad": "Ahmet", "yas": 30, "meslek": "mühendis" } print(kisi["ad"]) # Ahmet

🧩 d) Set (Küme)

Benzersiz elemanlar içeren, sırasız koleksiyondur.

python

sayilar = {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

python

sayi = 10 metin = str(sayi) # "10"

String'den Sayıya

python

deger = "5" sayi = int(deger) # 5

Float’tan Integer’a

python

ondalikli = 3.99 tam_sayi = int(ondalikli) # 3

Listeyi Küme Yapma

python

liste = [1, 2, 2, 3] kume = set(liste) # {1, 2, 3}

🧪 10. Tip Kontrolü: type() ve isinstance()

type() Fonksiyonu

Bir değişkenin veri tipini kontrol eder.

python

x = "Merhaba" print(type(x)) # <class 'str'>

isinstance() Fonksiyonu

Belirli bir veri tipine ait olup olmadığını kontrol eder.

python

print(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.

python

def 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.

python

mesaj = "Selam" def yazdir(): print(mesaj) yazdir() # Selam

🧠 global Anahtar Kelimesi

Fonksiyon içinden global değişkeni değiştirmek için global anahtar kelimesi kullanılır:

python

sayac = 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:

python

PI = 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.

python

veri = b"Python" print(type(veri)) # <class 'bytes'>

🧩 b) bytearray

Değiştirilebilir bayt dizisidir.

python

veri = 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.

python

v = 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.

python

def 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 yerine fiyat, 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.

python

def 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.

python

import 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

python

x = 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

python

liste = [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:

python

a = [1, 2, 3] b = a b.append(4) print(a) # [1, 2, 3, 4] çünkü a ve b aynı listeye referans verir

📛 id() Fonksiyonu

Bir nesnenin bellek adresini verir:

python

x = 100 print(id(x))

🔄 Kopyalama (copy)

Eğer ayrı bir kopya istiyorsanız, copy() metodunu kullanmalısınız:

python

import 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:

python

def topla(x: int, y: int) -> int: return x + y

📐 b) typing Modülü ile Gelişmiş Tipleme

python

from 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

python

kullanici_adi = input("Adınız: ") sifre = input("Şifreniz: ") dogrulandi_mi = True

📊 Veri Analizi

python

veriler = [23, 45, 67, 89] ortalama = sum(veriler) / len(veriler)

🗂️ Veritabanı Kayıt Yapısı

python

kullanici = { "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 stars
1
4 stars
0
3 stars
0
2 stars
0
1 star
0

teşekkürler

.

2 hafta ago

Review Python’da Değişkenler ve Veri Türleri.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir