Merhaba arkadaşlar. Python derslerimizde devam ediyoruz. Bu içeriğimizde sizlele print()
metodunun kullanımı öğreneceğiz.
Bildiğiniz gibi Pythonda çıktı vermek için print()
metodunu kullanıyoruz. Bu metod hem ekran çıtısı hemde dosya yazımında kullanılıyor.
Python etkileşimli shell de ilk örneğimizi verelim.
1 2 | >>> print("Merhaba Dünya") Merhaba Dünya |
İlk ekran çıktımız verdik isterseniz şimdi ise bir değişkene değer ataması yaptıktan sonra ekran çıktısı alalım.
1 2 3 | >>> selamla="Merhaba Dünya" >>> print(selamla) Merhaba Dünya |
Çıktı verirken “” tırnakların kullanımına özen göstermeliyiz. Örenğin çift tırnak ile karakter dizisine başlanmışsa
o karakter dizi ” tırnak ile bitmelidir.Yine bu method içerisinde
'a'
, "a"
,"""a"""
tek tırnak ve üç tane çift tırnakta kullanılmaktadır.
1 2 3 4 5 6 | >>> print('Seni düşünmek güzel şey, ümitli şey.') Seni düşünmek güzel şey, ümitli şey. >>> print("Seni düşünmek güzel şey, ümitli şey.") Seni düşünmek güzel şey, ümitli şey. >>> print("""Seni düşünmek güzel şey, ümitli şey.""") Seni düşünmek güzel şey, ümitli şey. |
Dikkat edilmesi gereken önemli husus karakter dizisi hangi tırnak ile başlamışsa içerisinde geçmemeli.Yani çift tırkan ile başladınızda karakter dizisi içerisinde tek tırnak, tek tırnak ile başladınızda karakter dizisi içerisinden çift tırnak yine üç tırnak ile başladınızsa karakter dizisi içerisinden tek veya çift tırnak kullanabilirsiniz. Aksi taktirde hata verecektir. Bunu aşağıdaki örnekte inceleyelim.
1 2 3 4 5 | >>> print("Seni düşünmek "güzel" şey, ümitli şey.") SyntaxError: invalid syntax >>> print('Bizi bir araya getiren Akif'in şiiriydi.') SyntaxError: EOL while scanning string literal |
Python bu metod içerisinde çift tırnak ile başladığınızda bir sonraki çift tırnağa kadar karater dizisi olarak algılıyor. Bu durumun istisna bir çift tırnak ile kırılmasıyla karakter dizisini sonuna gelindiği sanılıp tekrar tırnak kullanılmadığı var sayılıp syntax hatası veriyor. Bu gibi durumları aşağıdaki gibi önleyebiliriz.
1 2 3 4 | >>> print('Seni düşünmek "güzel" şey, ümitli şey.') Seni düşünmek "güzel" şey, ümitli şey. >>> print("Bizi bir araya getiren Akif'in şiiriydi.") Bizi bir araya getiren Akif'in şiiriydi. |
Bazı karakter dizisi içerisinde hem çift hemde tek tırnak kullanılıyorsa bunu “”” üç tırnak kullanarakda önleyebilirsiniz.
1 2 | >>> print("""Nazım Hikmet'in "Seni Düşünmek" adlı şiirini okudun mu?""") Nazım Hikmet'in "Seni Düşünmek" adlı şiirini okudun mu? |
Yine üç tırnak çok esnek bir şekilde çoklu metin çıktısı vermemizide sağlar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> print(""" Seni düşünmek güzel şey, ümitli şey. Dünyanın en güzel sesinden En güzel şarkıyı dinlemek gibi birşey... Fakat artık ümit yetmiyor bana. Ben artık şarkı dinlemek değil, Şarkı söylemek istiyorum. """) Seni düşünmek güzel şey, ümitli şey. Dünyanın en güzel sesinden En güzel şarkıyı dinlemek gibi birşey... Fakat artık ümit yetmiyor bana. Ben artık şarkı dinlemek değil, Şarkı söylemek istiyorum. |
Tırnak olaylarını işleçlerde tekrar kaçış dizilerinde ele alacağız biz print()
metodunu öğrenmeye devam edelim. Bu metodu
parçalı stringlerde ve bir de fazla değişkenin basımında virgüllerle ayırarak kullanabiliriz.Yine Python 3.10 versiyonunda virgül ile ayırmazsanızda problem oluyor. Standart yazım virgül ile olanıdır.
1 2 3 4 | >>> print("Ben""Sana""Mecburum","Bilemezsin") BenSanaMecburum Bilemezsin >>> print("Ben""Sana""Mecburum""Bilemezsin") BenSanaMecburumBilemezsin |
Dikkat ettiniz mi? Virgüller ile yazdığımızda birer adet boşluk bırakırken virgülsüz yazdığımıda hiç boşluk bırakmadı. Burada boşluğu print() metodu içerisnde varsayılan olarak belirlenmiş olan sep=” ” parametresi vermektedir.
1 2 | >>> print("Ben","Sana","Mecburum","Bilemezsin",sep=" ") Ben Sana Mecburum Bilemezsin |
Bu parametre separator (Ayrıcı) kısaltmasıdır. Bu parametre var sayılan olarak sep=" "
boşluk değeri olmaktadır. Eğer isterseniz bunu değiştirede bilirsiniz.
1 2 | >>> print("Ben","Sana","Mecburum","Bilemezsin",sep="-") Ben-Sana-Mecburum-Bilemezsin |
İsterseniz alt satıra inmek için kullandığımız \n kaçış operatörünüde kullanabilirsiniz.
1 2 3 4 5 | >>> print("Ben","Sana","Mecburum","Bilemezsin",sep="\n") Ben Sana Mecburum Bilemezsin |
Eğer karakter dizileri birbirinden virgüllerle değilde birleştirme operatörü ile bağlanmışsa separator çalışmayacaktır.
1 2 | print("Ben"+"Sana"+"Mecburum"+"Bilemezsin",sep="\n") BenSanaMecburumBilemezsin |
Virgüllerle ayrılmış karakter dizilerinde ise aynı çıktıyı separatore boş değer verirsek alırız.
1 2 | >>> print("Ben","Sana","Mecburum","Bilemezsin",sep="") BenSanaMecburumBilemezsin |
Separatore none değeri verilirsede aynı çıktıyı almış oluruz.
1 2 | >>> print("Ben","Sana","Mecburum","Bilemezsin",sep=None) Ben Sana Mecburum Bilemezsin |
Prinf fonsiyonunda kulanılan diğer bir parametremiz ise end=""
parametresidir. Bu parametre ise verilen çıktının
sonuna ne geleceğini belirler. Varsayılan olarak end="\n"
bir alt satıra iner.
1 2 3 4 5 6 | Anlaşılacağı gibi ikisinde de aynı çıktıyı alıyoruz.<pre> <pre> >>> print("Değişir rüzgarın yönü") Değişir rüzgarın yönü >>> print("Değişir rüzgarın yönü", end="\n") Değişir rüzgarın yönü |
Bu parametreye başka bir değer verdiğimizde daha iyi anlayacağız.
1 2 | >>> print("Değişir rüzgarın yönü", end="__________________") Değişir rüzgarın yönü__________________ |
print()
metodumuzda kullanmış olduğumuz diğer bir parametre ise file=""
parametresidir. Bu parametre
verilirse çıktı ekrana değil bir dosyaya yazılması istenmiştir. Tabi bu konuyu detaylı olrak dosya işlemlerinde işleyeceğiz ama sizlerle bir örnekte yapabilirizi.
1 2 3 4 5 6 | >>> dosya=open("userData.txt","w") >>> print(""" Yaşadıklarımdan öğrendiğim bir şey var:\n Yaşadın mı, yoğunluğuna yaşayacaksın bir şeyi\n """,file=dosya) >>> dosya.close() |
Yukarıdaki kod etileşimli shell de çalıştırıldığında python’un çalışmış olduğu dizinde userData.txt dosyasını oluşturacak ve “Yaşadıklarımdan öğrendiğim bir şey var: Yaşadın mı, yoğunluğuna yaşayacaksın bir şeyi” içeriğini yazacaktır. Peki burdaki kodlar ne işe yarıyor.
dosya=open("userData.txt","w")
bu satırda userData dosyasını oluşturduk ve bu dosyayı yazmak için "w"
açtık. Bu fonksiyonun yapılandırmasını dosya
adında bir değişkene
atadık.
print("""
Yaşadıklarımdan öğrendiğim bir şey var:\n
Yaşadın mı, yoğunluğuna yaşayacaksın bir şeyi\n
""",file=dosya)
ile file parametresine çıktını nereye yapılacağını daha önce ayarlamasını yapmış olduğumuz dosya
değikenini atadık.
dosya.close()
son olarakta dosyamızı kapattık. Eğer bu işlemi yapmadan dosyayı açarsanız yazma işleminin olmadığını görmüş olacaksınız. Çıktının tamamlanması için bu fonksiyon çağırılmalıdır.
Bu yazma işleminde print()
metodunda bir de flush
parametresi kullanılmaktadır. Bu parametre
yukarıda anlattığımız yazşma işlmenin gerçekleşmesi için close()
metodunun kullanılması gerektiğini söyledik. Sistem yazma işlemini belleğinde
tutuyor ve close()
metodunu görünce bellekte tuttuğu veriyi basıyor. İşte bazı durumda belleğin yetersiz kaldığı ya da satır satır yazılması gerken durumlarda dosya açıp kapamak yerine
flush
metodu imdadımız yetişiyor. Bu sayede printle bastığımız her veri satır satır işleniyor.
1 2 3 4 | >>> dosya=open("userData.txt","w") >>> print("Artık demir almak günü gelmişse zamandan",file=dosya,flush=True) >>> print("Meçhule giden bir gemi kalkar bu limandan. ",file=dosya,flush=True) >>> dosya.close() |
Yukarıdaki kod çalıştırıldığında yazma işlemi her print metodunda gerçekleşmiştir. Print metodu için anlatacaklarmızı bu kadar aşağıdaki içerik listesinden veya anasayfandan diğer python ders içeriklerine bakabilirsiniz. Başarılar.