📦 Değişkenler & Tipler
Değişkenler & Tipler: Bir değişken, üzerine etiket yapıştırılmış bir kutu gibi — name = "Ali" dediğinde, "name" etiketli kutuya "Ali" koymuş olursun.
Bir değişken, üzerine etiket yapıştırılmış bir kutu gibi — name = "Ali" dediğinde, "name" etiketli kutuya "Ali" koymuş olursun. Ama burada gerçek soru şu: Java'da o kutuyu açmadan önce kutunun TÜRÜNÜ söylemen gerekir (String name = "Ali") — Python'da neden gerekmiyor? Çünkü Python kutuyu açıp içine BAKAR, etiketi okumadan da ne olduğunu anlar. Bu hız kazandırır ama bir riski de getirir: aynı kutuya önce bir string, sonra bir sayı koyarsan Python hiç şikayet etmez — derleme zamanında değil, test ÇALIŞIRKEN patlar. QA otomasyonunda "AttributeError: 'int' object has no attribute 'strip'" hatasının kökü neredeyse her zaman budur: kutunun içinde sandığından FARKLI bir tür var.
Java'da değişken tipi açıkça yazılır: int x = 5. Python'da sadece x = 5 yazılır — Python tipi otomatik anlar. Bu "dinamik tipleme" olarak adlandırılır.
Micro Lab: Python kod yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Java ile Karşılaştırma
Python'da bir değişkenin tipini öğrenmek için hangi fonksiyon kullanılır?
type(x) Python'ın yerleşik fonksiyonudur. isinstance(x, int) ise miras (inheritance) dahil kontrol eder.
Bir Python değişkeninin sınıfını (veri tipini) öğrenmek için en yaygın kullanılan yöntem nedir?
Python'da bir değişkenin türünü doğrudan döndürmek için type() yerleşik fonksiyonu kullanılır.
Veri tipleri, bir mutfaktaki farklı çekmece türleri gibi: çatal-bıçak çekmecesine bardak koymazsın, baharat rafına tencere koymazsın — her şeyin "doğru yeri" var. Java'da bu ayrım sıkı bir kuraldır: int çekmecesi sadece tam sayı alır, derleyici buna izin VERMEZ. Python'da ise her şey aslında bir "nesne" — yani aynı çekmece sistemi var ama kilit yok. Şunu düşün: bu özgürlük mü, yoksa risk mi? İkisi de — hızlı prototip yazmanı sağlar ama bir API'den gelen "200" (string) ile 200 (sayı) arasındaki farkı fark etmezsen, test sonucun yanlış "PASS" verebilir. QA mühendisinin işi tam burada başlıyor: veri TÜRÜNÜ varsaymak yerine kontrol etmek.
Java'da primitive tipler (int, double, boolean) ve Object tipleri ayrıdır. Python'da her şey bir object'tir — int, str, list, dict hepsi birer sınıf örneğidir.
Python'da hangi veri tipi değiştirilemez (immutable)?
Tuple immutable'dır — oluşturduktan sonra eleman ekleyip çıkaramazsınız. Java'daki List.of() gibi.
Python'da aşağıdakilerden hangisi değiştirilebilir (mutable) bir veri tipidir?