Python derslerine kaldığımız yerden devam ediyoruz. En son substring elde etmekten bahsetmiştik. Yani bir stringi parçalara ayırma kavramına değindik.
Hatırlatması açısından parçalama için kullandığımız formülü burada da verelim :
[Başlangıç indexi : Bitiş indexi : Atlama Değeri(Optional) ]
Bu formülün genel kullanımında başlangıç ve bitiş indeksleri veriliyordu, ancak böyle bir zorunluluk tabii ki bulunmuyordu.
Eğer ki başlangıç indeksi belirtilmezse Python yorumlayıcısı bunu default olarak en baş (sol) olarak kabul ederken, bitiş indeksi verilmezse default olarak da stringin sonuna kadar alınıyordu.
Sistemin genel işleyişi bu yöndeydi. Python'da diğer programlama dillerinden farklı olarak negatif index değerlerinin de olabileceğini bunun diziye sondan başlama anlamına geldiğini Stringler konusunun ilk dersinde değinmiştik.
Substringler Elde Etme (2)
Stringler soldan yani sıfırıncı indisten parçalanabileceği gibi aynı işlemleri sondan yapmamız da mümkün.
Mesela aşağıdaki örneği inceleyelim.
Bitiş indeksini vermemişiz yani bu sona kadar gideceği anlamına gelir. Başlangıç indeksiniz -8 olarak vermişiz. Burada saymaya sondan yani -1 den başlıyoruz. -8.indis değeri 'D' harfi olacaktır. Yani aslında 'D' harfi dahil sona kadar tamamını al demiş olduk.
Görüldüğü gibi negatif değerlerle de gayet pratik işlemler yapabiliriz.
Atlama Değeri
Yukarıdaki formülde atlama değerinden bahsettik ama hiç kullanmadık. Atlama değerinin kullanımı ile alakalı bir uygulama yapalım.
Yukarıdaki ifadede başlangıç ve bitiş indislerini vermediğimize göre default olarak tüm string üzerinde işlem yapacaktır.
Girdiğimiz 3 sayısı başlangıçtan itibaren 3 karakteri al anlamına geliyor. İlk karakter olan 'P' karakterini aldıktan sonra 3 karakter ilerliyor ve 3.karakter olan 'h' karakterini alıyor. Bu şekilde boşluklar da dahil olmak üzere almaya devam ediyor.
Bir de başlangıç ve bitiş indislerini vererek aynı işlemi yaptıralım :
Örneğimize bakacak olursa ilk başlangıç indisi 2 olarak verilmiş yani 't' harfinden başlayacağız. Başladığımız harfi alıyoruz. 14.indis 'l' harfidir. Bu aralıkta 2 şer atlayarak karakterleri toplayacak ancak son indisi almayacak. Sistem bu şekilde.
Peki atlama değeri pozitif değil de negatif olsaydı durum nasıl olurdu? Bir uygulama üzerinde görelim.
Başlangıç ve bitiş değerleri verilmediğinden tüm string üzerinde işlem yapacaktır. -1 olduğu için sondan başlayacak ve tüm stringi tersine çevirecektir.
Şimdilik bu kadar.
Umarım faydalı bir çalışma olmuştur.
Teşekkürler.
Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me