Merhaba bu yazımızda Python’da karakter dizilerini biçimlendirmeyi öğreneceğiz.
Python karater dizlerini biçimlendirirken %
işareti ile format()
metodunu kullanacağız. Bunlardan ilk olarak
%
işaretini kullanacağız. Bu işaret belirli bir karater dizisi içerisinden dinamik olarak değişen alanlara koyuyoruz.
Bu işretlerin geleceği değişkenleri ise sırası ile belirtiyoruz. Aşağıda biçimlendirme karakterlerinin listesi verilmiştir.
%s | String değişkenlerde kullanılır. |
%d | Gelecek integer değerler için kullanılır |
%i | Integer karakterleri basmak için kullanılır. %d ile aynıdır. |
%o | Octal, karaterlerin ascii karaterleri basar. Aynı zamanda 10 tabalı bir sayıyı sekiz tabanına çevirir. |
%X | Hexadecimal onaltılı tabanda sayıları yazdırmak için kullanılır ve aynı zamanda çeviri yapar. |
%x | Hexadecimal harf karşılığını verir. |
%c | ASCII kod karşılığı verilen karakteri verir. |
%b | Onluk tabandaki sayılara ikilik tabana çevirmektedir. |
1 2 3 4 5 6 7 | isim=input("Lütfen Adınızı Giriniz : ") print("Merhaba %s"%isim) ########Ekran Çıktısı############# #Lütfen Adınızı Giriniz : Çağlar #Merhaba Çağlar ############################### |
Bu örnekte kullanıcıdan adını istedik. Giriş yapıldıktan sonra "%s"
ile işaretlemiş olduğmuz yere print(%isim)
print metodu içerisinde değişken önüne % işareti getirek karater dizisi içerisinde yerini almasını sağladık. Burda Kullanıdığımız %s
bu işaretlenen yere string tipinde bir değişkenin geleceğini belirtiyoruz. Bu yöntem eski bir yöntem C,Perl,Php… gibi bir çok dilde kullanılmaktadır.
Diğer bir örneğimiz.
1 2 3 4 5 6 7 8 9 | isim=input("Lütfen Adınızı Giriniz : ") soyisim=input("Lütfen Soy Adınızı Giriniz : ") print("Merhaba %s %s"%(isim,soyisim)) ########Ekran Çıktısı############# #Lütfen Adınızı Giriniz : Çağlar #Lütfen Soy Adınızı Giriniz : Bostancı #Merhaba Çağlar Bostancı ############################### |
Birden fazla değikeni karater dizisinde yerleştirmek isterseniz parantez içerisinide %(isim,soyisim)
şeklinde
kullanmalıyız. Tabi dikkat etmemiz gereken diğer bir konu ise değişkenlerin sıralı bir şekilde gelmesidir.
1 2 3 4 5 6 7 8 9 10 11 12 | for index,deger in enumerate("Merhaba"): print("%s index %s degeri"%(index,deger)) ########Ekran Çıktısı############# #0 index M değeri #1 index e değeri #2 index r değeri #3 index h değeri #4 index a değeri #5 index b değeri #6 index a değeri ############################### |
Yukarıda ise "Merhaba"
karater dizisini enumerate
metodu ile numaralandırdık. Sonra döngüye sokarak
index
değişenine index değerini ve degeri
adında değişkene değerini atayarak yazdırdık.
Yine aşağıdaki örneği inceleyelim.
1 2 3 4 5 6 7 8 | isim="Can" soyisim="Yücel" print("%s %30s"%(isim,soyisim)) ########Ekran Çıktısı############# #Can Yücel ############################### |
Burada kullanıdığımız %30s
bu alan 30 karater uzunluğunda bir string bir verinin geleceğini belirledik.
Bu örnekte sözcük sağa yaslanırken %-30
şeklindeki kullanım ise sözcük sola yaslanmıştır.
1 2 3 4 | print("//%s %-30s//"%("Can","Yücel")) ########Ekran Çıktısı############# #//Can Yücel // - ############################### |
Yine farklı bir kullanım olarak değişkenlerin geleceği yerleri isimlendirebilirsiniz.
1 2 3 4 5 6 | print("%(yazarAd)s %(yazarSoyad)s"%{"yazarAd":"Atilla","yazarSoyad":"İlhan"}) ########Ekran Çıktısı############# #Atilla İlhan ############################### |
Peki yukarda vermiş olduğumuz tabloda sayısal değerler için %d
değerini kullanacağımızdan bahsetmiştik.
Bu kullanımada birer örnek verelim.
1 2 3 4 5 6 | yil=2021 print("Senelerden %d"%yil) ########Ekran Çıktısı############# #Senelerden 2021 ############################### |
Eğer isterseniz rakamları belirli bir karakter uzunluğunda da görüntüleyebilirsiniz. Aşağıda farklı yazımları gösterilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 | yil=2021 print("//%8d//"%yil) # sekiz karakter uzunluğunda sağa yaslı print("//%-8d//"%yil) #sekiz karater uzunluğunda sağa yaslı print("//%08d//"%yil) #0 rakamıyla sekiz karakter uzunluğunda print("//%15.08d//"%yil) #onbeş karakter uzunluğunda son sekiz karakteri sıfırla doldurulmuş ########Ekran Çıktısı############# #// 2021// #///2021 // #//00002021// #// 00002021// ############################### |
%i integer değer ilede bir örnek yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 | yil=2021 print("//%8i//"%yil) # sekiz karakter uzunluğunda sağa yaslı print("//%-8i//"%yil) #sekiz karater uzunluğunda sağa yaslı print("//%08i//"%yil) #0 rakamıyla sekiz karakter uzunluğunda print("//%15.08i//"%yil) #onbeş karakter uzunluğunda son sekiz karakteri sıfırla doldurulmuş ########Ekran Çıktısı############# #// 2021// #///2021 // #//00002021// #// 00002021// ############################### |
%f float değeleri biçimlendirilmiş şekilde ekrana basmak için kullanıyoruz.
1 2 3 4 5 6 | pi=3.14 print("%f"%pi) #3.140000 print("%.3f"%pi) #3.140 print("%16f"%pi) # 3.140000 print("%016f"%pi) #000000003.140000 print("%016.3f"%pi) #000000000003.140 |
%X
ve %x
Hexadecimal onaltılı tabanda karakter birçimlendirmeye yarar.Bu biçimledirme büyük X büyük harflerle
biçimlendirirken küçük x ise küçük karaterle biçimlendirilir.
1 2 3 4 5 6 | print("%X"%1000) print("%x"%1000) ########Ekran Çıktısı############# #3E8 #3e8 ############################### |
%X
ve %x
yine karakterlerin listelenmesinde de kullanılır. Büyük harf için
büyük %X kullanılırken küçük harfler içinse küçük %x kullanılır.
1 2 3 4 5 6 | print("%X"%12) print("%x"%12) ########Ekran Çıktısı############# #C #c ############################### |
%c
ASCII kod karşılığı verilen karakterleri verir. Aynı zamanda bir karakteri temsil eder.
1 2 3 4 | print("%c"%115) ########Ekran Çıktısı############# #s ############################### |
Aşağıdaki örnek ascii tablosunu yazdırmaktadır.
1 2 | for sayi in range(128): print("%(sayi)s - %(sayi)c "%{"sayi":sayi}) |
Python Karakter Biçimlendirmelerinde .format() Metodu Kullanımı
Python 3.x sürümü ile gelen yeni karakter biçimlendirme metodudur. Daha önce gördüklerimiz python 2.x ile kullanılmaktaydı. Bu yöntemler 3.x ile devam etmektedir ama ilerleyen zamanlarda kalkabilir. Şimdi yeni yönteme göz atalım.
1 2 3 4 5 | print("{} {}".format("Merhaba" , "Dünya")) ########Ekran Çıktısı############# #Merhaba Dünya ############################### |
Yukarıdaki örnekte değişkenlerin geleceği yere {} küme parantezleri ile işaretledik. İsterseniz değişken sıralamlarını numaralar ile değiştirebiliriz.
1 2 3 4 5 | print("{1} {0}".format("Merhaba" , "Dünya")) ########Ekran Çıktısı############# #Dünya Merhaba ############################### |
Yine Python karakter biçimlendirmelerinde isimlendirmelere yaparakta düzenleyebiliriz.
1 2 3 4 5 | print("{deger1} {deger2}".format(deger1="Merhaba" ,deger2= "Dünya")) ########Ekran Çıktısı############# #Dünya Merhaba ############################### |
Eski sistemde kullandığımız %30s kullanımı yeni sistemde {:>30}
şeklindek kullanılmaktadır.
burada : iki nokta biçimlendirme yapılacaği > büyüktür işareti yaslamanın sağa yapılacak ve 30 karakterlik alan alacağını belirtiyor.
1 2 3 | print("|{:>30}|".format("PYTHON")) #| PYTHON| print("|{:<30}|".format("PYTHON")) #|PYTHON | print("|{:^30}|".format("PYTHON")) #| PYTHON | |
Yine yukarıda belirmiş olduğumuz tablodaki %s gibi karakter biçimlendirmleride aşağıdaki gibi kullanılmaktadır. Detaylı kullanımlarına örnek aşağıda verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 | print("|{:s}|".format("PYTHON")) #|PYTHON| print("|{:b}|".format(1915)) #|11101111011| print("|{:o}|".format(1915))#|3573| print("|{:d}|".format(len("PYTHON"))) #|6| print("|{:10d}|".format(len("PYTHON"))) #| 6| print("|{:<10d}|".format(len("PYTHON"))) #|6 | print("|{:f}|".format(3.14)) #|3.140000| print("|{:.3f}|".format(3.14)) #|3.140| print("|{:16.3f}|".format(3.14)) #| 3.140| print("|{:016.3f}|".format(3.14)) #|000000000003.140| print("|{:x}|".format(11)) #|b| print("|{:c}|".format(65)) #|A| |
Bunlarında dışında yine {:,}
virgül kullanımı basamak ayracı olarakta kullanılmaktadır.
1 2 3 4 5 | print("{:,}".format(123456789)) ########Ekran Çıktısı############# #123,456,789 ############################### |
Karakter biçimlendirmelerine burada nokta koyalım. Başarılar.
Python f-String Kullanımı
Python 3.6 sürümü ile birlikte gelen f string ise karakter biçimlendirme işlemini dahada kolaylaştırmaktadır. Bunu aşağıdaki bir örnekle açıklayalım.
1 2 3 4 5 6 7 8 9 10 11 12 | isim=input("Adınız : \n") soyisim=input("Soyadınız : \n") print(f"Merhaba {isim} {soyisim}") ########Ekran Çıktısı############# #Adınız : #Neşet #Soyadınız : #Ertaş #Merhaba Neşet Ertaş ############################### |
Yukarıdaki örnektede anlaşılacağı gibi print içerisinde f""
karakter dizisi öncesinde f kullanılmış ve
değişkenler karakter dizisi içerisinde {} küme paranter içerisinde kullanılmıştır.