Veri Bilimi İçin Python Notları-5: Python’da String Değişkenler – 2

V

1. Python’da Yer Tutucu ile Verileri Birleştirmek (format { } metodu)

String ve numerik verilerin + işareti ile birleştirilemediğinden daha önce bahsedilmişti.

yas = 37
MyText = "Adım İshak ve ben " + yas + " yaşındayım."
print(MyText)

Yukarıdaki kod çalıştırıldığında “TypeError: can only concatenate str (not “int”) to str” şeklinde bir hata alınır. Sorunu çözmek için şu yöntemden yararlanılabilir.

yas = 37
MyText = "Adım İshak ve ben {} yaşındayım."
print(MyText.format(yas)) #Sonuç: Adım İshak ve ben 37 yaşındayım.

Veri içinde konumlandırılan {} işaretleri birer yer tutucudur. Kod çalıştırıldığında değişkenin (örneğin yas değişkeninin) değeri yer tutucunun içine aktarılır.

Format metodunu kullanabilmek için herhangi bir kısıtlama yoktur. Format metodunu bir değişkenin içinde aşağıda gösterildiği gibi dilediğiniz kadar kullanabilirsiniz.

yas = 37
x = 1
y = 10
MyText = "Adım İshak ve ben {} yaşındayım. {} yıldır Eskişehir'de yaşıyorum. {} yıldan uzun süre Ankara'da yaşadım."
print(MyText.format(yas, x, y)) #Sonuç: Adım İshak ve ben 37 yaşındayım. 1 yıldır Eskişehir'de yaşıyorum. 10 yıldan uzun süre Ankara'da yaşadım.

Yukarıdaki değişkenler MyText değişkeninin içindeki yer tutuculara belirli bir sıraya göre aktarılmaktadır.

Eğer değişkenlerin yer tutuculara aktarılması sırasında, sıralamayı aşağıda gösterildiği gibi de değiştirebilirsiniz.

yas = 37
x = 1
y = 10
MyText = "Adım İshak ve ben {0} yaşındayım. {2} yıldır Eskişehir'de yaşıyorum. {1} yıldan uzun süre Ankara'da yaşadım."
print(MyText.format(yas, x, y)) #Sonuç: Adım İshak ve ben 37 yaşındayım. 10 yıldır Eskişehir'de yaşıyorum. 1 yıldan uzun süre Ankara'da yaşadım.
  

Alternatif olarak yer tutucu ile değişken arasındaki bağlantıyı kuran ve yaygın olarak kullanılan aşağıdaki yöntemleri de incelemeniz yararlı olabilir.

x = 150
myText = "Ürünün birim fiyatı {fiyat:.2f} TL olarak belirlendi."
print(myText.format(fiyat = x)) #Sonuç: Ürünün birim fiyatı 126.00 TL olarak belirlendi.

print("___________\n")

#değişken isimleri kullanılabilir.
myText1 = "Adım {isim} ve ben {yas} yaşındayım.".format(isim = "İshak", yas = 37)
print(myText1) #Sonuç: Adım İshak ve ben 37 yaşındayım.

#Şu şekilde kullanımı da var.
myText2 = "Adım {isim} ve ben {yas} yaşındayım." .format(isim = isim, yas = yas)
print(myText2) #Sonuç: Adım İshak ve ben 37 yaşındayım.

#indeks numaraları kullanılabilir.
myText2 = "Adım {0} ve ben {1} yaşındayım.".format("İshak", 37)
print(myText2) #Sonuç: Adım İshak ve ben 37 yaşındayım.

#yer tutucular boş bırakılabilir. Aslında bu da bir indeksleme yöntemidir
myText3 = "Adım {} ve ben {} yaşındayım.".format("İshak", 37)
print(myText3) #Sonuç: Adım İshak ve ben 37 yaşındayım.  

1.1. Python’da Yer Tutucu ile Sola Hizalama Yapmak ({:<} metodu)

Yer tutucu {:<} metodu ile değişkenin sağına boşluk eklendiği için değişken bulunduğu konuma göre sabitlenmiş oluyor. Böylece değişken sola hizalanmış oluyor. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

x = 37
myText = "Adım İshak ve ben {:<} yaşındayım."
print(myText.format(x)) #Sonuç: Adım İshak ve ben 37 yaşındayım.
#Sonuçta herhangi bir girinti yoktur.

print("___________\n")


x = 37
myText = "Adım İshak ve ben {:<2} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:<3} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:<4} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:<5} yaşındayım."
print(myText.format(x))

#Sonuçlar:
#Adım İshak ve ben 37 yaşındayım.       {:<2} 
#Adım İshak ve ben 37  yaşındayım.      {:<3} 
#Adım İshak ve ben 37   yaşındayım.     {:<4} 
#Adım İshak ve ben 37    yaşındayım.    {:<5} 

#Açıklamalar:
#37 değeri iki haneli olduğu için {:<2} yer tutucusunda boşluk yok.
#37 değeri iki haneli olduğu için {:<3} yer tutucusunda 1 adet boşluk var.
#37 değeri iki haneli olduğu için {:<4} yer tutucusunda 2 adet boşluk var.
#37 değeri iki haneli olduğu için {:<5} yer tutucusunda 3 adet boşluk var.

1.2. Python’da Yer Tutucu ile Sağa Hizalama Yapmak ({:>} metodu)

Yer tutucu {:>} metodu ile değişkenin soluna boşluk eklendiği için değişken bulunduğu konuma göre sabitlenmemiş oluyor. Böylece değişken sağa hizalanmış oluyor. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

x = 37
myText = "Adım İshak ve ben {:>} yaşındayım."
print(myText.format(x)) #Sonuç: Adım İshak ve ben 37 yaşındayım.
#Sonuçta herhangi bir girinti yoktur.

print("___________\n")


x = 37
myText = "Adım İshak ve ben {:>2} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:>3} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:>4} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:>5} yaşındayım."
print(myText.format(x))

#Sonuçlar:
#Adım İshak ve ben 37 yaşındayım.       {:>2} 
#Adım İshak ve ben  37 yaşındayım.      {:>3} 
#Adım İshak ve ben   37 yaşındayım.     {:>4} 
#Adım İshak ve ben    37 yaşındayım.    {:>5} 

#Açıklamalar:
#37 değeri iki haneli olduğu için {:>2} yer tutucusunda boşluk yok.
#37 değeri iki haneli olduğu için {:>3} yer tutucusunda 1 adet boşluk var.
#37 değeri iki haneli olduğu için {:>4} yer tutucusunda 2 adet boşluk var.
#37 değeri iki haneli olduğu için {:>5} yer tutucusunda 3 adet boşluk var.

1.3. Python’da Yer Tutucu ile Ortalanmış Şekilde Hizalama Yapmak ({:^} metodu)

Yer tutucu {:^} metodu ile değişkenin önce sağına sonra soluna boşluk eklendiği için değişken bulunduğu konuma göre sabitlenmemiş oluyor. Böylece değişken ortalanmış şekilde hizalanmış oluyor. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

x = 37
myText = "Adım İshak ve ben {:^} yaşındayım."
print(myText.format(x)) #Sonuç: Adım İshak ve ben 37 yaşındayım.
#Sonuçta herhangi bir girinti yoktur.

print("___________\n")


x = 37
myText = "Adım İshak ve ben {:^2} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:^3} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:^4} yaşındayım."
print(myText.format(x))

myText = "Adım İshak ve ben {:^5} yaşındayım."
print(myText.format(x))

#Sonuçlar:
#Adım İshak ve ben 37 yaşındayım.       {:^2} 
#Adım İshak ve ben 37  yaşındayım.      {:^3} 
#Adım İshak ve ben  37  yaşındayım.     {:^4} 
#Adım İshak ve ben  37   yaşındayım.    {:^5} 

#Açıklamalar:
#37 değeri iki haneli olduğu için {:^2} yer tutucusunda boşluk yok.
#37 değeri iki haneli olduğu için {:^3} yer tutucusunda 1 adet boşluk var.
#37 değeri iki haneli olduğu için {:^4} yer tutucusunda 2 adet boşluk var.
#37 değeri iki haneli olduğu için {:^5} yer tutucusunda 3 adet boşluk var.

1.4. Python’da Yer Tutucu ile +/- İşaretlerini Kullanmak ({:+}, {:-} metotları)

Yer tutucu {:+} metodu ile değişkenin artı/eksi (+/-) işaretlerini metin içinde belirtebilirsiniz. Yer tutucu {:-} metodu ile değişkenlerin sadece eksi (-) işaretlerini metin içinde belirtebilirsiniz. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

#Pozitif ve negatif işaretleri gösterir
myText = "Yarın sıcaklığın {:+} ile {:+} santigrat derece arasında olması bekleniyor."
print(myText.format(-5, +9)) #Sonuç: Yarın sıcaklığın -5 ile +9 santigrat derece arasında olması bekleniyor.
print(myText.format(3, 7)) #Sonuç: Yarın sıcaklığın +3 ile +7 santigrat derece arasında olması bekleniyor.

print("___________\n")

#Sadece negatif işaretleri gösterir
myText = "Yarın sıcaklığın {:-} ile {:-} santigrat derece arasında olması bekleniyor."
print(myText.format(-5, +9)) #Sonuç: Yarın sıcaklığın -5 ile 9 santigrat derece arasında olması bekleniyor.
print(myText.format(3, 7)) #Sonuç: Yarın sıcaklığın 3 ile 7 santigrat derece arasında olması bekleniyor.

1.5. Python’da Bindelik Ayraçlar ({:,}, {:_} metotları)

Bindelik ayraç olarak yer tutucu {:,} metodu ile “,” işaretini, {:_} metodu ile “_” işaretini kullanabilirsiniz.. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

myText = "Ülkenin gayri safi yurt içi hasılasının yıl sonunda {:,} ABD doları olması bekleniyor."
x = 750000000000
print(myText.format(x)) #Sonuç: Ülkenin gayri safi yurt içi hasılasının yıl sonunda 750,000,000,000 ABD doları olması bekleniyor.

print("___________\n")

myText = "Ülkenin gayri safi yurt içi hasılasının yıl sonunda {:_} ABD doları olması bekleniyor."
x = 750000000000
print(myText.format(x)) #Sonuç: Ülkenin gayri safi yurt içi hasılasının yıl sonunda 750_000_000_000 ABD doları olması bekleniyor.

1.6. Python’da Ondalık Hane ({:f} metodu)

Ondalık hane sayısını belirtmek için yer tutucu {:f} metodunu kullanabilirsiniz. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

x=126
myText = "Ürünün birim fiyatı {:.2f} TL olarak belirlendi."
print(myText.format(x)) #Sonuç: Ürünün birim fiyatı 126.00 TL olarak belirlendi.

x=126
myText = "Ürünün birim fiyatı {:.3f} TL olarak belirlendi."
print(myText.format(x)) #Sonuç: Ürünün birim fiyatı 126.000 TL olarak belirlendi.

x=126
myText = "Ürünün birim fiyatı {:f} TL olarak belirlendi."
print(myText.format(x)) #Sonuç: Ürünün birim fiyatı 126.000000 TL olarak belirlendi.
#Ondalık değer belirtilmezse otomatik olarak 6 haneli ondalık değeri kullanılır.

1.7. Python’da Sayı Formatı ({:n} metodu)

Sayı formatı için yer tutucu {:n} metodunu kullanabilirsiniz. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

x=126
myText = "Ürünün birim fiyatı {:n} TL olarak belirlendi."
print(myText.format(x)) #Sonuç: Ürünün birim fiyatı 126 TL olarak belirlendi.

1.8. Python’da Yüzde Formatı ({:%} metodu)

Yüzde formatı için yer tutucu {:%} metodunu kullanabilirsiniz. Aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

myText = "Ülkenin gayri safi yurt içi hasılasının yıl sonunda, önceki yıla göre {:%} artması bekleniyor."
x = 0.12
print(myText.format(x)) #Sonuç: Ülkenin gayri safi yurt içi hasılasının yıl sonunda, önceki yıla göre 12.000000% artması bekleniyor.

myText = "Ülkenin gayri safi yurt içi hasılasının yıl sonunda, önceki yıla göre {:.0%} artması bekleniyor."
x = 0.12
print(myText.format(x)) #Sonuç: Ülkenin gayri safi yurt içi hasılasının yıl sonunda, önceki yıla göre 12% artması bekleniyor.

myText = "Ülkenin gayri safi yurt içi hasılasının yıl sonunda, önceki yıla göre {:.0%} artması bekleniyor."
x = 0.07
print(myText.format(x)) #Sonuç: Ülkenin gayri safi yurt içi hasılasının yıl sonunda, önceki yıla göre 7% artması bekleniyor.

2. Python’da Metin İçinde Denden, Slash, Tab vb. Özel Karakterler Kullanmak (\n, \t, \\, \b, expandtabs metotları)

Metin içinde çift ya da tek tırnak kullanımı, tab ile girinti vermek, slash kullanmak, yeni satıra geçmek vb. özel karakterleri kullanmak için \” işaretinden yararlanılabilir.

myText = "Python, "Veri Bilimi" alanında yaygın bir şekilde kullanılıyor."
print(myText)

Yukarıdaki kod çalıştırıldığında “SyntaxError: invalid syntax” şeklinde bir hata alınır. Sorunu çözmek için şu yöntemden yararlanılabilir.

myText = "Python, \"Veri Bilimi\" alanında yaygın bir şekilde kullanılıyor."
print(myText) #Sonuç: Python, "Veri Bilimi" alanında yaygın bir şekilde kullanılıyor.

Çift denden (tırnak) işareti içinde belirtmek istediğimiz ifadenin başına ve sonuna \ işaretleri (escape character) eklememiz yeterli oldu.

Metin içinde sola yatık slash işareti kullanmak için aşağıdaki örnek incelenebilir.

myText = "Dosyanın bulunduğu dizin: C:\\Users\\"
print(myText) #Sonuç: Dosyanın bulunduğu dizin: C:\Users\

Metni bir alt satıra yazdırmak için aşağıdaki örnek incelenebilir.

myText = "Dosyanın bulunduğu dizin:\nC:\\Users\\"
print(myText) 
#Sonuç: 
#Dosyanın bulunduğu dizin:
#C:\Users\

Metne sağa doğru girinti vermek (tab yapmak) için aşağıdaki örnek incelenebilir.

myText = "Dosyanın bulunduğu dizin:\n\t\t\t\tC:\\Users\\"
print(myText) 
#Sonuç: 
#Dosyanın bulunduğu dizin:
#				C:\Users\
  

Metnin içindeki karakterlere \t ve expandtabs metotları ile farklı aralıklar verilebilir.

myText = "P\ty\tt\th\to\tn"
print(myText) 
#Sonuç: 
#P		y	t	h	o	n

a =  myText.expandtabs(0)
b =  myText.expandtabs(1)
c =  myText.expandtabs(3)
d =  myText.expandtabs(5)

print(a)
#Sonuç: 
#Python
print(b)
#Sonuç: 
#P y t h o n
print(c)
#Sonuç: 
#P  y  t  h  o  n
print(d)
#Sonuç: 
#P    y    t    h    o    n
  

Metne geriye (sola doğru) silmek (backspace yapmak) için aşağıdaki örnek incelenebilir.

myText = "Dosyanın bulunduğu dizin:\b\b\bC:\\Users\\"
print(myText) #Sonuç: Dosyanın bulunduğu dizC:\Users\
  

3. Python’da Arama Metotları (find, index, rfind, rindex metotları)

Metin içinde find metodu ile belirli bir değer aratılabilir. Aranan değer bulunamaz ise find metodu -1 değerini döndürür.

myText = "Makine öğrenmesi, veri bilimi ya da yapay zeka alanında kariyer yapmak için Python öğrenebilirsiniz."
x = myText.find("öğrenmesi") 
print(x) # Sonuç: 7 (Bulunan değerin metin içinde başlangıç pozisyonunu verir. Örneğin "Makine" değerini aratmış olsaydık 0 değerini alırdı.)

if x>=0: #Aranan değer bulundu
    print("Evet, değişkende 'öğrenmesi' ifadesi var.") #Sonuç: Evet, değişkende 'öğrenmesi' ifadesi var.
else:
    print("Hayır, değişkende 'öğrenmesix' ifadesi yok.")

Aratılmak istenen değer metnin tamamında değil belirli bir aralıkta da aratılabilir.

myText = "Makine öğrenmesi, veri bilimi ya da yapay zeka alanında kariyer yapmak için Python öğrenebilirsiniz."
x = myText.find("veri",0,10) 
print(x) # Sonuç: -1 (Bulunan değerin metin içinde başlangıç pozisyonunu verir. Eğer bulamaz ise -1 değeri döndürür.)

if x>=0: #Aranan değer bulundu
    print("Evet, değişkenin ilk 10 karakteri içinde 'veri' ifadesi var.") 
else:
    print("Hayır, değişkenin ilk 10 karakteri içinde 'veri' ifadesi yok.") #Sonuç: Hayır, değişkenin ilk 10 karakteri içinde 'veri' ifadesi yok.

Yukarıdaki işlemler index metodu kullanılarak da yapılabilir.

myText = "Makine öğrenmesi, veri bilimi ya da yapay zeka alanında kariyer yapmak için Python öğrenebilirsiniz."
x = myText.index("öğrenmesi") 
#x = myText.index("öğrenmesi",0,20) #Aramanın başlangıç ve bitiş pozisyonu da belirtilebiir.
print(x) # Sonuç: 7 (Bulunan değerin metin içinde başlangıç pozisyonunu verir. Örneğin "Makine" değerini aratmış olsaydık 0 değerini alırdı.)

if x>=0: #Aranan değer bulundu
    print("Evet, değişkende 'öğrenmesi' ifadesi var.") #Sonuç: Evet, değişkende 'öğrenmesi' ifadesi var.
else:
    "Aranan ifade bulunamaz ise hata verecektir." # ValueError: substring not found

Ancak index metodu, aranan değeri bulamaz ise find metodundan farklı olarak “ValueError: substring not found” şeklinde bir hata döndürür. Bahsi geçen hatayı görmek için aşağıdaki kodları çalıştırabilirsiniz.

myText = "Makine öğrenmesi, veri bilimi ya da yapay zeka alanında kariyer yapmak için Python öğrenebilirsiniz."
y = myText.find("öğrenmesix") 
print(y) #Sonuç: -1
x = myText.index("öğrenmesix") 
print(x) #Sonuç: ValueError: substring not found

Aratılmak istenen değer belirli bir pozisyondan itibaren rfind ya da rindex metodu ile sağdan solda doğru aşağıda gösterildiği/açıklandığı gibi yapılabilir.

print("rfind metodu")
myText = "Python harika!"
print(len(myText)) #Sonuç: 14 
#"Python harika!" değerinde toplam 15 karakter vardır.
#Not: Yukarıdaki/aşağıdaki açıklamaları değerlendirirken Python’da indeks no.larının 0'dan başladığını göz önünde bulundurun.

x = myText.rfind("h")
print(x) #Sonuç: 7 #Bulunan değerin metin içinde başlangıç pozisyonunu verir.
#Dikkat edilirse, aramayı sağdan sola doğru yaptırdığımız için "Python" içindeki "h" harfini değil, "harika!" içindeki "h" harfini bulmuştur.
#Ancak sonucu soldan 7. karakter olarak tespit etmiştir; sağdan 6. karakter olarak döndürmemiştir. 

myText = "Python harika!"
x = myText.rfind("h",0,6) # Arma yapılan değer "Python" ifadesidir.
print(x) #Sonuç: 3

myText = "Python harika!"
x = myText.rfind("h",7,14) # Arma yapılan değer "harika!" ifadesidir.
print(x) #Sonuç: 7


print("___________\n")


print("rindex metodu")
myText = "Python harika!"
print(len(myText)) #Sonuç: 14 
#"Python harika!" değerinde toplam 15 karakter vardır.
#Not: Yukarıdaki/aşağıdaki açıklamaları değerlendirirken Python’da indeks no.larının 0'dan başladığını göz önünde bulundurun.

x = myText.rindex("h")
print(x) #Sonuç: 7 #Bulunan değerin metin içinde başlangıç pozisyonunu verir.
#Dikkat edilirse, aramayı sağdan sola doğru yaptırdığımız için "Python" içindeki "h" harfini değil, "harika!" içindeki "h" harfini bulmuştur.
#Ancak sonucu soldan 7. karakter olarak tespit etmiştir; sağdan 6. karakter olarak döndürmemiştir. 

myText = "Python harika!"
x = myText.rindex("h",0,6) # Arma yapılan değer "Python" ifadesidir.
print(x) #Sonuç: 3

myText = "Python harika!"
x = myText.rindex("h",7,14) # Arma yapılan değer "harika!" ifadesidir.
print(x) #Sonuç: 7

4. Python’da Alfanumerik Karakter Kontrolü (isalnum metodu)

Değişken değerinin alfanumerik karakterlerden oluşup oluşmadığını kontrol etmek için isalnum metodu kullanılabilir. Metodun çalışma ilkesini kavramak için aşağıdaki örneği çalıştırdıktan sonra dikkatle incelemeniz önerilir.

Not: Alfanumerik karakterler sayılardan ve alfabetik karakterlerden oluşur. Bunun dışında boşluk, -, % vb. karakterler alfanumerik karakter olarak kabul edilmez.

myText = "Veri bilimi 2000'li yıllardan sonra dünyada yaygınlık kazanmaya başlamıştır."
x = myText.isalnum()
print(x) #False
if x==True:
    print("Alfanumerik karakterlere sahip bir değer.") 
else:
    print("Alfanumerik karakterlere sahip olmayan bir değer.") #Sonuç: Alfanumerik karakterlere sahip olmayan bir değer.

print("___________\n")

myText = "Python39"
x = myText.isalnum()
print(x) #True
if x==True:
    print("Alfanumerik karakterlere sahip bir değer.") #Sonuç: Alfanumerik karakterlere sahip bir değer.
else:
    print("Alfanumerik karakterlere sahip olmayan bir değer.")

5. Python’da Alfabetik Karakter Kontrolü (isalpha)

Değişken değerinin tümünün alfabetik karakterlerden oluşup oluşmadığını kontrol etmek için isalpha metodu kullanılabilir. Metodun çalışma ilkesini kavramak için aşağıdaki örneği çalıştırdıktan sonra dikkatle incelemeniz önerilir.

myText = "Veri bilimi 2000'li yıllardan sonra dünyada yaygınlık kazanmaya başlamıştır."
x = myText.isalpha()
print(x) #False
if x==True:
    print("Sadece alfabetik karakterlere sahip bir değer.") 
else:
    print("Sadece alfabetik karakterlere sahip olmayan bir değer.") #Sonuç: Sadece alfabetik karakterlere sahip olmayan bir değer.

print("___________\n")

myText = "Veri bilimi tatlı su balığı değildir."
x = myText.isalpha()
print(x) #False
if x==True:
    print("Sadece alfabetik karakterlere sahip bir değer.") 
else:
    print("Sadece alfabetik karakterlere sahip olmayan bir değer.") #Sonuç: Sadece alfabetik karakterlere sahip olmayan bir değer.

print("___________\n")

myText = "Python39"
x = myText.isalpha()
print(x) #False
if x==True:
    print("Sadece alfabetik karakterlere sahip bir değer.") 
else:
    print("Sadece alfabetik karakterlere sahip olmayan bir değer.") #Sonuç: Sadece alfabetik karakterlere sahip olmayan bir değer.

print("___________\n")

myText = "Python"
x = myText.isalpha()
print(x) #True
if x==True:
    print("Sadece alfabetik karakterlere sahip bir değer.") #Sonuç: Sadece alfabetik karakterlere sahip bir değer.
else:
    print("Sadece alfabetik karakterlere sahip olmayan bir değer.")

Özetle bu metot, tüm karakterlerin alfabetik olmasını (boşluk, nokta vb. olmamasını) gerektirir; verinin sadece alfabetik karakterlerden oluşup oluşmadığını kontrol eder.

6. Python’da Numerik Karakter Kontrolü (isnumeric, isdigit metotları)

Değişken değerinin tümünün numerik karakterlerden oluşup oluşmadığını kontrol etmek için “isnumeric” metodu kullanılabilir. Metodun çalışma ilkesini kavramak için aşağıdaki örneği çalıştırdıktan sonra dikkatle incelemeniz önerilir.

myVal= "2000"
x = myVal.isnumeric()
print(x) #True
if x==True:
    print("Sadece numerik karakterlere sahip bir değer.") #Sonuç: Sadece numerik karakterlere sahip bir değer.
else:
    print("Sadece numerik karakterlere sahip olmayan bir değer.") 

print("___________\n")

myVal= "2000.0"
x = myVal.isnumeric()
print(x) #False
if x==True:
    print("Sadece numerik karakterlere sahip bir değer.")
else:
    print("Sadece numerik karakterlere sahip olmayan bir değer.") #Sonuç: Sadece numerik karakterlere sahip olmayan bir değer.

print("___________\n")


x = "\u0030" #unicode'da 0 değerine eşit.
y = "\u00B2" #unicode'da x^2 değerini (bir sayısının üssünün 2 olmasını) ifade eder. 
z = "-7"
k = "7"

print(x.isnumeric()) #True
print(y.isnumeric()) #True
print(z.isnumeric()) #False
print(k.isnumeric()) #True

Özetle bu metot, tüm karakterlerin numerik olmasını (boşluk, nokta, eksi işareti, virgül vb. olmamasını) gerektirir; verinin sadece numerik karakterlerden oluşup oluşmadığını kontrol eder. Yukarıdaki örneklerde “isnumeric” metodu yerine “isdigit” metodu da kullanılabilir. Sonuçlar değişmeyecektir.

7. Python’da Unicode Cinsinden Rakamsal Karakter Kontrolü (isdecimal metodu)

Değişken değerinin tümünün unicode karakterleri cinsinden 0 ile 9 arasındaki değerlerden oluşup oluşmadığını kontrol etmek için “isdecimal” metodu kullanılabilir. Metodun çalışma ilkesini kavramak için aşağıdaki örneği çalıştırdıktan sonra dikkatle incelemeniz önerilir.

myVal = "\u0035" #unicode'de 5 değeri
x = myVal.isdecimal()
print(x) #Sonuç: True
x = myVal.encode()
print(x) #Sonuç: b'5'

print("___________\n")

myVal = "\u0037" #unicode'de 7 değeri
x = myVal.isdecimal()
print(x) #Sonuç: True
x = myVal.encode()
print(x) #Sonuç: b'7'

print("___________\n")

myVal = "\u0057" #unicode'de W değeri
x = myVal.isdecimal()
print(x) #Sonuç: False
x = myVal.encode()
print(x) #Sonuç: b'W'

8. Python’da Legal Karakterlerin Kontrolü (isidentifier metodu)

Değişken değerinin Python için geçerli/legal karakterler cinsinden (a-z, 0-9 arasındaki değerlerden ve alt tire “_” işaretinden) oluşup oluşmadığını kontrol etmek için “isidentifier” metodu kullanılabilir. Metodun çalışma ilkesini kavramak için aşağıdaki örneği çalıştırdıktan sonra dikkatle incelemeniz önerilir.

a = "MyVal"
b = "Python39"
c = "3MyVal"
d = "ishak_kutlu"
e = "Eskişehir"
f = "Python 39"

print(a.isidentifier()) #Sonuç: True
print(b.isidentifier()) #Sonuç: True
print(c.isidentifier()) #Sonuç: False
print(d.isidentifier()) #Sonuç: True
print(e.isidentifier()) #Sonuç: True
print(f.isidentifier()) #Sonuç: False 

9. Python’da Verilere Karakter Eklemek (join metodu)

Aşağıdaki kodun ilk bölümünde “Python” ifadesine “-” karakterleri eklenmiştir. Takip eden bölümlerde ise tuple, list, set, dict gibi liste tipi değişkenlerin elemanları, belirli bir ayraç atanarak “join” metoduyla string bir değişkene dönüştürülmesi gösterilmiştir. “join” metodu list, set, dict değişkenleriyle birlikte kullanıldığında liste elemanlarını liste tipi değişkenlerden çıkartıp string birer değişkene dönüştürür.

Not: Liste tipi değişkenlerin (list, tuple, set ve dictionary), sonraki makalelerde detaylı olarak üzerinde durulacaktır.

myText = "Python"
x = "-".join(myText)
print(x) #Sonuç: P-y-t-h-o-n

print("___________\n")

myTuple = ("Volvo", "Honda", "Volkswagen")
x = "#".join(myTuple)
print(x) #Sonuç: Volvo#Honda#Volkswagen

print("___________\n")

myList = ["Volvo", "Honda", "Volkswagen"]
x = ",".join(myList)
print(x) #Sonuç: Volvo,Honda,Volkswagen

print("___________\n")

mySet = {"Volvo", "Honda", "Volkswagen"}
x = "/".join(mySet)
print(x) #Sonuç: Honda/Volkswagen/Volvo #Diğerlerinden FARKLI!

print("___________\n")

myDict = {"Volvo": "İsveç", "Honda": "Japonya","Volkswagen": "Almanya",}
x = "-".join(myDict)
print(x) #Sonuç: Volvo-Honda-Volkswagen

10. Python’da Verinin Soluna Sıfır Eklemek (zfill)

Bir değişkenin soluna 0 (sıfır) eklemek için kullanılır. Metodun çalışma ilkesini kavramak için aşağıdaki kodları çalıştırdıktan sonra incelemeniz önerilir.

myText = "Python"
myNumber = "29"
print(myText.zfill(4)) #Sonuç: Python
print(myNumber.zfill(4)) #Sonuç: 0029

#zfill indeksi 4,"Python" ifadesinin karakter sayısı olan 6'dan küçük olduğu için 0 eklenmedi.
#zfill indeksi 4,"29" ifadesinin karakter sayısı olan 2'den 2 büyük olduğu için "29" ifadesinin soluna 2 adet 0 eklendi.

print("___________\n")

myText = "Python"
myNumber = "29"
print(myText.zfill(10)) #Sonuç: 0000Python
print(myNumber.zfill(10)) #Sonuç: 0000000029

#zfill indeksi 10,"Python" ifadesinin karakter sayısı olan 6'dan büyük olduğu için "Python" ifadesinin soluna 4 adet 0 eklendi.
#zfill indeksi 10,"29" ifadesinin karakter sayısı olan 2'den 8 büyük olduğu için "29" ifadesinin soluna 8 adet 0 eklendi.

11. Python’da Karakterleri Ters Çevirmek (reverse)

Bir değişkenin karakterlerinin sırasını sondan başa doğru aşağıda gösterildiği gibi join ve reverse metotlarını kombinleyerek ters çevirebilirsiniz.

x = "Python"
  
x = "".join(reversed(x))
print(x) #Sonuç: nohtyP

Karakterlerin yukarıdaki gibi ters çevrilmesine bir alternatif olarak aşağıdaki komutu inceleyebilirsiniz.

x = "Python"

x = x[::-1]
print(x) #Sonuç: nohtyP

 

 

İshak Kutlu, Veri Bilimi İçin Python Notları

Yorum Yap

İshak Kutlu

Veri & Otomasyon Uzmanı

Kurumsal iş akışlarını düzenleyen veri odaklı otomasyon sistemleri ve makine öğrenmesi tabanlı çözümler geliştirir. Gerçek operasyonel süreçler için ölçeklenebilir ve izlenebilir yapılar tasarlar.

YouTube   YouTube   YouTube   YouTube