Bu bölüm Python’da formatlı bir şekilde çıktı alınması ve “input/raw_input” komutları ile girdi alınmasına ayrılmıştır.
10.1.1. Ekrana çıktı oluşturma – Formatlı gösterim
print ifadesi çıktı oluşturmak için en basit yoldur. Python, bu ifade içinde kullanabileceğiz faklı özellikler destekler. Öncelikle basit bir örnekle print içinde değişken gösterimi hatırlayalım.
1 2 3 |
sayi = 1000 str = 'Python' print('Merhaba', str, sayi) |
1 |
Merhaba ÇMF 1000 |
print ifadesi için boşluk her virgülden sonra otomatik olarak verilir. Fakat, Python formatlı katar gösterimi olanak sağlayan özelliklere sahiptir. Örneğin,
1 2 |
print(f'Merhaba {sayi} {str} değişkenler köşeli parantez içinde') print(F'Merhaba {str} {sayi} f veya F karakteri ile başlanmalı') |
1 2 |
Merhaba 1000 ÇMF değişkenler köşeli parantez içinde Merhaba ÇMF 1000 f veya F karakteri ile başlanmalı |
Float bir sayının istediğimiz kadar basamağını format ile yapabiliriz. Örneğin,
1 2 3 4 5 |
evet = 42_572_654 hayir = 43_132_495 yuzde = evet / (evet + hayir) print('{:-9} EVET {:2.2%}'.format(evet, yuzde)) print(f'Farklı gösterim : {yuzde:.3f}') |
1 2 |
42572654 EVET 49.67% Farklı gösterim : 0.497 |
format metodu sırasıyla gösterilmek istenen değerleri alır. :2 ondalık kısımda iki basamağı alırken 2% virgülden sonra 2 basamağın gösterilmesi anlamına gelir. “%” karakteri yüzdelik gösterim için kullanılır. evet değişkeni için kullanılan -9 ise evet değişkeninin sonunda başlayarak 9 basamak geri gelineceği anlamına gelir. Eğer sadece 9 kullanılsaydı sayma işlemi baştan başlardı. Örneğin bir string değerin ilk dört karakterini göstermek için “:4” şeklinde bir kullanım olabilirdi. Değişkenlerin ilk alınırken kullanılan “_” ise değerlerin okunurluğunu arttırmak içindir. İkinci çıktı ise sonucu 3 basamaklı bir float sayı olarak gösterir. “f” float için kullanılırken “d” decimal sayıları kaç basamağının kullanılması gerektiği belirlemek için kullanılır.
Yukarıda format metodu üzerine bir işlem yaptık. Aşağıda bu metodun farklı kullanım şekillerini örnekler üzerinden açıklamaya çalışacağım.
1 2 3 4 5 |
print('1. değer {} ve 2. değer "{}!"'.format('Merhaba', 'Python')) #sıralı erişim print('1. değer {0} ve 2. değer "{1}!"'.format('Merhaba', 'Python')) #index ile erişim print('2. değer {1} ve 1. değer "{0}!"'.format('Merhaba', 'Python')) #sıralama print('1. değer {deg1} ve 2. değer "{deg2}!"'.format(deg1='Merhaba', deg2='Python')) #değişken üzerinden erişim print('1. değer {0} ve 2. değer "{deg2}!"'.format('Merhaba', deg2='Python')) # hem index hem de değişken ile erişim |
1 2 3 4 5 |
1. değer Merhaba ve 2. değer "Python!" 1. değer Merhaba ve 2. değer "Python!" 2. değer Python ve 1. değer "Merhaba!" 1. değer Merhaba ve 2. değer "Python!" 1. değer Merhaba ve 2. değer "Python!" |
Python’da katar üzerine sağa, sola ve ortaya yaslama gibi özellikleri de destekler. Bu işlemler için sağa yaslamak için str.rjust(), str.ljust() ve str.center() metotları kullanılır. Bir sayının katar gösteriminde başına sıfır eklemek için str.zfill() komutu kullanılabilir. Ayrıca, eski bir katar formatlama özelliği olan % sağa hizalama için yapılabilir.
1 2 3 4 5 6 7 8 |
degisken = 'Merhaba' print(degisken.rjust(20))#karakter sayısı, sağa yasla print(degisken.ljust(20))#karakter sayısı, sola yasla print(degisken.center(20))#karakter sayısı, ortala print('12'.zfill(10))#karakter sayısı, kalan karakterler için 0 ekle print('12.02'.zfill(10))#karakter sayısı, kalan karakter için 0 ekle sayi = 8.1456789 print('Merhaba sayı %10.3f' % sayi) #%'den sonra karakter sayısı, f virgüllü kısım |
1 2 3 4 5 6 |
Merhaba Merhaba Merhaba 0000000012 0000012.02 Merhaba sayı 8.146 |
10.1.2. Klavyeden girdi alma: input
input([komut]) fonksiyonu her ne kadar raw_input fonksiyonuna benzese de geçerli bir Python ifadesini alıp sonucunu döndürebilir. Örneğin,
1 2 |
str = input("Bir Python ifadesi girin : ") print("Dönen sonuç : ", str) |
1 2 |
Bir Pyton ifadesi girin: 5 Dönen sonuç : 5 |
Yukarıdaki örnekte alınan değer bir Python kodudur. x olarak 2’den başlayıp 10’a kadar ikişer ikişer artan bir döngü yazılmış ve dönen x değeri 5 ile çarpılmıştır. x=2, 4, 6, 8 için yukarıdaki sonuçlar dönmüştür.