Python print() Fonksiyonu: Ekrana Yazı Yazdırmanın Tüm Püf Noktaları
Python’da ilk öğrendiğin şey print(), en son bırakacağın şey de yine print(). Yıllardır kod yazan biri bile bir hatayı ararken satır satır ekrana değer bastırır. Bu yüzden onu “çocuk işi” diye geçme.
Bu derste Python print fonksiyonunu baştan sona inceleyeceğiz. Temel kullanımdan sep ve end parametrelerine, kaçış karakterlerinden yeni başlayanların en çok takıldığı hatalara kadar her şeye bakacağız. Bu dersten sonra ekrana istediğin biçimde çıktı verebilirsin.
print() Fonksiyonu Ne İşe Yarar?
print(), parantez içine verdiğin değeri ekrana (terminale) yazdıran yerleşik bir fonksiyondur. “Yerleşik” demek, hiçbir şey kurman ya da içe aktarman gerekmediği anlamına geliyor. Python’u açtığın anda hazır.
Çalışma klasöründe print_ornekleri.py adında yeni bir dosya aç (sanal ortamın aktif ve VS Code’da seçili olduğundan emin ol) ve şunu yaz:
# print_ornekleri.py
# Ekrana basit bir metin yazdır
print("Merhaba, dünya!")
Çalıştırdığında terminalde şunu görürsün:
Merhaba, dünya!
Arka Planda Ne Oldu?
- Python, tırnak içindeki ifadeyi bir string (metin) olarak tanıdı.
print()bu metni standart çıktıya (stdout) gönderdi. VS Code’da bu, alttaki terminal paneli.- Metnin sonuna otomatik olarak bir satır sonu ekledi. Bir sonraki
print()bu yüzden alt satırdan başlar.
Son madde kritik. Satır sonunu print() kendiliğinden ekliyor, sen yazmıyorsun. Birazdan bunu değiştirmeyi de göreceğiz.
Tırnak İşaretleri: Tek mi Çift mi?
Python’da metinler tek tırnak (') ya da çift tırnak (") içine yazılabilir. İkisi de aynı sonucu verir:
# İkisi de aynı çıktıyı verir
print("Python öğreniyorum")
print('Python öğreniyorum')
Peki neden iki seçenek var? Metnin içinde tırnak kullanman gerektiğinde işe yarıyor:
# İçinde tek tırnak geçiyorsa dışını çift tırnak yap
print("Ali'nin kitabı masada")
# İçinde çift tırnak geçiyorsa dışını tek tırnak yap
print('Hoca "çok güzel" dedi')
Kural basit: açtığın tırnak türüyle kapatmak zorundasın. Bir kez "Ali'nin kitabı" yerine 'Ali'nin kitabı' yazmış ve hatanın nerede olduğunu on dakika aramıştım. Python metnin Ali kısmından sonra bittiğini sanıyor ve geri kalanı anlamıyor.
Bu seride tutarlılık için genellikle çift tırnak kullanacağız. Hangisini seçersen seç, bir dosya içinde karıştırmamaya çalış.
Birden Fazla Değer Yazdırma
print() virgülle ayırdığın birden fazla değeri tek seferde yazdırabilir:
# Virgülle ayrılan değerler arasına otomatik boşluk girer
print("Ad:", "Elif", "Yaş:", 28)
Ad: Elif Yaş: 28
Dikkat ettiysen 28 bir sayı, tırnaksız yazdık. print() sayıları, metinleri ve daha sonra göreceğimiz birçok veri tipini birlikte yazdırabilir. Aralarına boşluğu da kendisi koyuyor.
+ ile Birleştirmek Neden Hata Veriyor?
Başka dillerden gelenler genelde metin ile sayıyı + ile birleştirmeyi dener:
# Bu satır hata verir!
print("Yaş: " + 28)
TypeError: can only concatenate str (not "int") to str
Python metinle sayıyı toplamaya çalışmaz. Bir tarafın metin, diğerinin sayı olduğunu görünce hata fırlatır. İki çözümün var: virgül kullanmak (yukarıdaki gibi) ya da sayıyı metne çevirmek:
# str() sayıyı metne çevirir
print("Yaş: " + str(28))
Tür dönüşümlerini 10. derste ayrıntılı işleyeceğiz. Daha rahat bir yol olan f-string‘i de 9. derste göreceksin. Şimdilik virgül yöntemi işini görür.
sep Parametresi: Ayırıcıyı Değiştirmek
Değerlerin arasına girecek karakter varsayılan olarak bir boşluk. sep parametresiyle bunu istediğin şeyle değiştirebilirsin:
# Değerleri tire ile ayır
print("2025", "01", "15", sep="-")
# Hiç ayırıcı olmasın
print("Py", "thon", sep="")
# Satır başı ile ayır: her değer alt alta
print("elma", "armut", "kiraz", sep="\n")
2025-01-15
Python
elma
armut
kiraz
Tarihleri, dosya yollarını, CSV benzeri çıktıları üretirken sep çok işine yarayacak.
end Parametresi: Satır Sonunu Değiştirmek
Az önce print()‘in her çağrıdan sonra alt satıra geçtiğini söylemiştik. Bu davranışı end kontrol ediyor. Varsayılan değeri "\n" (yeni satır).
# end="" ile alt satıra geçmeyi engelle
print("Yükleniyor", end="")
print("...", end="")
print(" tamam!")
# end ile özel bir son ekle
print("Birinci", end=" | ")
print("İkinci")
Yükleniyor... tamam!
Birinci | İkinci
Döngülerde (14. ve 15. dersler) aynı satıra sürekli bir şeyler eklemek istediğinde end neredeyse her seferinde karşına çıkacak.
Kaçış Karakterleri (Escape Sequences)
Metin içinde klavyeden doğrudan yazamayacağın ya da özel anlamı olan şeyler için ters bölü (\) ile başlayan kaçış karakterleri kullanılır:
\n: Yeni satır\t: Tab boşluğu\\: Tek bir ters bölü işareti\"ve\': Metin içinde tırnak işareti
# Tek satırda iki satır çıktı üret
print("Birinci satır\nİkinci satır")
# Tab ile hizalama
print("Ad:\tElif")
print("Şehir:\tAnkara")
# Metin içinde çift tırnak
print("Hoca \"harika\" dedi")
# Ters bölü yazdırmak
print("C:\\Kullanicilar\\ali")
Birinci satır
İkinci satır
Ad: Elif
Şehir: Ankara
Hoca "harika" dedi
C:\Kullanicilar\ali
Windows Dosya Yollarının Tuzağı
Windows kullanıcılarının neredeyse hepsi bir gün buna takılıyor. Şunu yazdığını düşün:
# Bu satır hata verir
print("C:\Users\ali")
Python \U kısmını özel bir karakter başlangıcı sanıyor ve SyntaxError fırlatıyor. Daha sinsi olan durumda ise hata bile çıkmaz: "C:\yeni\test" yazarsan \y yok sayılır ama \t tab’a, \n yeni satıra dönüşür ve çıktı bambaşka görünür.
İki çözüm var: ters bölüyü ikiye katla (\\) ya da metnin önüne r koyarak ham (raw) string yap:
# Raw string: kaçış karakterleri yorumlanmaz
print(r"C:\Users\ali")
Dosya işlemlerine 31. derste geleceğiz. O zamana kadar bu tuzağı aklında tut.
Çok Satırlı Metin: Üç Tırnak
Uzun bir metni birden fazla satıra yaymak için üç tırnak kullanabilirsin:
# Üç tırnak: yazdığın satır yapısı aynen korunur
print("""Python dersleri
1. Kurulum
2. Editör
3. print()""")
Python dersleri
1. Kurulum
2. Editör
3. print()
ASCII sanatı, menüler ya da uzun açıklama metinleri için pratik. Üç tek tırnak (''') da aynı işi görür.
Boş Satır ve Ayraç Çizmek
Çıktıyı okunaklı yapmak için iki küçük numara:
# Parantez içi boş: sadece boş bir satır basar
print()
# Metni çarpmak: tekrar eden ayraç çizgisi
print("-" * 30)
print("RAPOR")
print("-" * 30)
------------------------------
RAPOR
------------------------------
"-" * 30 ifadesi, o tireyi 30 kez arka arkaya yazar. Metinlerle çarpma işlemini 8. derste daha geniş işleyeceğiz.
Sık Yapılan print() Hataları
Tırnağı Kapatmayı Unutmak
print("Merhaba)
SyntaxError: unterminated string literal
“Kapanmamış metin” demek. VS Code’da hatalı satırın altı kırmızıyla çizilir. Hata mesajındaki satır numarasına bak ve tırnakları say.
Metni Tırnaksız Yazmak
print(Merhaba)
NameError: name 'Merhaba' is not defined
Tırnak yoksa Python bunu bir değişken adı sanır ve öyle bir değişken bulamayınca şikâyet eder. Metin yazdırıyorsan tırnak şart.
Büyük Harfle Yazmak
Print("Merhaba")
NameError: name 'Print' is not defined. Did you mean: 'print'?
Python büyük/küçük harfe duyarlıdır. print ile Print birbirinden tamamen ayrı iki isim. Neyse ki yeni sürümlerin hata mesajı doğrusunu da öneriyor.
Parantezsiz Kullanmak
print "Merhaba"
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
Bu, Python 2 döneminden kalma yazım. Eski bir blog yazısından ya da videodan kopyaladığında karşına çıkar. Python 3’te parantez zorunlu.
Türkçe Karakterler Bozuk Görünüyor
Çıktıda ş, ğ, ı yerine garip işaretler görüyorsan genellikle dosya kodlaması ya da terminal ayarı sorunludur. VS Code’da sağ alttaki kodlama göstergesine bak. UTF-8 yazmalı. Değilse tıklayıp “Save with Encoding” ile UTF-8’i seç. Güncel VS Code ve Python sürümlerinde bu genellikle sorunsuz çalışıyor ama eski dosyaları açarken karşına çıkabilir.
print() Aslında Bir Değer Döndürüyor mu?
Küçük ama öğretici bir ayrıntı. print() ekrana yazdırır ama geriye anlamlı bir değer vermez. Python bunu None ile ifade eder:
# print() çıktıyı ekrana yazar, kendisi ise None döndürür
sonuc = print("Deneme")
print(sonuc)
Deneme
None
Bunu ileride fonksiyonları öğrenirken (“ekrana yazdırmak” ile “değer döndürmek” arasındaki fark) çok sık hatırlayacaksın. Yeni başlayanların en yaygın karıştırdığı konulardan biri bu.
Uygulama: Kendi Çıktını Tasarla
Öğrendiklerini birleştiren küçük bir alıştırma. Aşağıdaki kodu yaz, çalıştır ve sonra kendi bilgilerinle değiştir:
# kartvizit.py
# Basit bir kartvizit çıktısı hazırlayalım
print("=" * 28)
print("Ad Soyad:\tElif Yılmaz")
print("Meslek:\t\tVeri Analisti")
print("E-posta:", "elif@ornek.com")
print("=" * 28)
Tab boşlukları ekranında hizayı biraz kaydırabilir. Bu normal. Metin uzunluğuna göre \t sayısını ayarlayarak oynayabilirsin. Bir şey bozulursa tırnakları ve parantezleri say, hatanın yüzde doksanı orada çıkıyor.
Kontrol Listesi
- ✅
print()ile metin ve sayı yazdırabiliyorum. - ✅ Tek ve çift tırnağı doğru kullanıyorum.
- ✅
sepveendparametrelerinin ne yaptığını biliyorum. - ✅
\n,\tve\\kaçış karakterlerini tanıyorum. - ✅ Windows dosya yollarında ham string (
r"...") kullanmam gerektiğini biliyorum.
Sıkça Sorulan Sorular
print() ile input() arasındaki fark nedir?
print() ekrana bir şey yazar, input() ise kullanıcıdan bir şey alır. Biri çıkış, diğeri giriş. input()‘u 10. derste işleyeceğiz.
print() ile bir dosyaya yazı yazılır mı?
Evet, file parametresi ile mümkün ama yeni başlayanlar için fazla ayrıntı. Dosya işlemlerini 31. derste daha sağlıklı yöntemlerle göreceğiz.
Tek tırnak mı çift tırnak mı kullanmalıyım?
İşlevsel bir fark yok. Tek önemli şey, açtığın tırnakla kapatman. Ekip içinde çalışırken genelde bir tercih belirlenir ve herkes ona uyar.
print() ile hata ayıklamak (debug) doğru mu?
Küçük programlarda gayet işe yarıyor, profesyoneller de kullanıyor. Büyüdükçe loglama ve hata ayıklayıcı (debugger) daha uygun hale gelir. Şimdilik print yeterli.
Sırada Ne Var?
Ekrana çıktı vermeyi öğrendin ama kod büyüdükçe ne yaptığını hatırlamak zorlaşır. Bir sonraki derste yorum satırlarını ve Python’un en kişilikli özelliğini, yani girintiyi (indentation) ele alacağız. İlk IndentationError‘ını görmeden önce neden oluştuğunu bilirsen çok daha az sinirleneceksin.
