🔤 Metinler & Mantıksal

Metinler & Mantıksal: String'ler (Metinler) Bir string'i, üzerine dizilmiş boncuklardan oluşan bir kolye gibi düşün — her boncuk (karakter) sırayla durur ve numarasıyla (index) ç

String'ler (Metinler)

Bir string'i, üzerine dizilmiş boncuklardan oluşan bir kolye gibi düşün — her boncuk (karakter) sırayla durur ve numarasıyla (index) çağrılabilir. Şimdi şunu sor: neden Python "string1 + string2" yazınca onları YAPIŞTIRIR ama "string1 - string2" yazınca hata verir? Çünkü "+" boncukları art arda dizmek demek (mantıklı), ama bir koleden boncuk "çıkarmak" tanımsız bir işlem (hangi boncuğu çıkaracaksın, nereden?). Java'da String immutable'dır — bir String'i "değiştirdiğinde" aslında YENİ bir String oluşur, eski hafızada durur. Python'da da aynı: s += "x" yazdığında s'in kendisi değişmez, Python yeni bir string yaratıp etiketi ona taşır. QA'de bu, döngü içinde string birleştirmenin (binlerce gizli kopya oluşturarak) neden yavaş olduğunu açıklar.

Java'da String.charAt(), substring(), indexOf() gibi metodlar kullanılır. Python'da aynı işler için daha kısa ve okunabilir sözdizimi var: s[0], s[1:5], "hello" in s gibi.

Micro Lab: Python kod yazma

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: Python kod yazma

Girdi ve veri tiplerini oku

Kritik satiri en kucuk degisiklikle tamamla

Kodu calistirip beklenen ciktiyi karsilastir

Hata varsa traceback veya assertion mesajini oku

Test raporu icin sonucu tekrar kullanilabilir hale getir

Python QA kodunu guvenli calistirma sirasi nedir?

Java ile Karşılaştırma

"Hello"[::-1] ifadesi ne döner?