Kurs
Python’a yeni başlıyor ve daha fazlasını öğrenmek istiyorsanız, DataCamp’in Introduction to Data Science in Python kursunu alın.

Bu eğitimi okurken birçoğunuz, basit bir Python Print fonksiyonu hakkında keşfedilecek bir şey kalmadığını düşünebilir; sonuçta Python öğrenmeye hepiniz muhtemelen Hello, World! yazdırma gibi eskimeyen bir örnekle başladınız. Doğru; Python’da veya herhangi bir programlama dilinde, Print fonksiyonu belirli bir dili öğrenirken attığınız en temel ve ilk adımdır. Ancak bir programlama dili öğrenirken bazen daha ileri konulara odaklanır ve çoğu zaman neredeyse her zaman kullandığınız basit bir fonksiyonun inceliklerini veya yeteneklerini gözden kaçırırsınız.
Bugünkü eğitimin odağı tamamen Python’un Print fonksiyonu olacak; en az değer verilen bu fonksiyonu öğreneceksiniz.
Bu eğitime Hello, World! örneğini yazdırarak başlayalım.
print("Hello, World!")
Hello, World!
Python2’den farklı olarak, parantez kullanmanız gerekmiyordu; Python3’te ise parantez zorunludur, aksi halde aşağıda gösterildiği gibi bir sözdizimi hatası oluşur.
print "Hello, World!"
File "<ipython-input-6-a1fcabcd869c>", line 1
print "Hello, World!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?
Yukarıdaki çıktıya bakarak Python3’te print()’in bir deyim değil, bir fonksiyon olduğu sonucuna varabilirsiniz.
Öyleyse, print() fonksiyonunun type/class’ını kontrol edelim.
type(print)
builtin_function_or_method
builtin_function_or_method döndürür; bu da bunun önceden tanımlı veya yerleşik bir Python Function olduğu anlamına gelir.
Şimdi aşağıdaki iki çıktı arasında yeni bir satır ya da dikey boşluk eklemek istediğinizi varsayalım; bunu başarmak için print() fonksiyonunu herhangi bir argüman geçmeden çağırmanız yeterlidir.
print("Hello, World!");print("Hello, World!")
Hello, World!
Hello, World!
print("Hello, World!")
print()
print("Hello, World!")
Hello, World!
Hello, World!
Şimdi print() fonksiyonunun söz dizimine bakalım. print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Bildiğiniz gibi, print fonksiyonu değerleri bir akışa (stream) yazdırır; varsayılan olarak sys.stdout’a. sys.stdout yani sistem standart çıktısı, print fonksiyonunun çıktıyı ekranda göstereceği anlamına gelir; bu, stdin veya stderr olarak da değiştirilebilir.
İsteğe bağlı anahtar kelime argümanları:
-
sep: Değerler arasına eklemek istediğiniz bir dize olabilir, varsayılanı boşluktur.Print fonksiyonunun içine bir dizi kelime koyalım ve bunları yeni satırla ayıralım. Unutmayın, varsayılan olarak; ayırıcı her kelime arasına bir boşluk ekler.
print('datacamp','tutorial','on','python','print','function')
datacamp tutorial on python print function
print('datacamp','tutorial','on','python','print','function',sep='\n') #`\n` her kelimeyi yeni satıra koyar
datacamp
tutorial
on
python
print
function
Benzer şekilde, aralarını virgülle ayırabilir, iki \n ekleyerek araya boş bir satır koyabilir veya artı $(+)$ işareti de ekleyebilirsiniz.
print('datacamp','tutorial','on','python','print','function',sep=',')
datacamp,tutorial,on,python,print,function
print('datacamp','tutorial','on','python','print','function',sep='\n\n')
datacamp
tutorial
on
python
print
function
print('datacamp','tutorial','on','python','print','function',sep=',+')
datacamp,+tutorial,+on,+python,+print,+function
Bir sonraki argüman olan end’e geçmeden önce, print fonksiyonuna bir değişken de iletebileceğinizi unutmayın. Bunu anlamak için, bir tamsayı listesini tanımlayıp print fonksiyonuna geçelim. Tamsayı listesini yazdırmasını beklersiniz.
int_list = [1,2,3,4,5,6]
print(int_list)
[1, 2, 3, 4, 5, 6]
-
end: Son değerden sonra eklenen bir dizedir; varsayılanı yeni satırdır. Programcının, her print çağrısı için varsayılan yeni satır veya\ndışındaki özel bir bitiş karakteri tanımlamasına olanak tanır.Diyelim ki iki dizeniz var ve bunları araya boşluk koyarak birleştirmek istiyorsunuz; yapmanız gereken tek şey, ilk dize olan
str1’in print fonksiyonunda tırnak içinde birendargümanı eklemek; böylece iki dize bir boşlukla birleşecektir.
str1 = 'datacamp tutorial on'
str2 = 'python print function'
print(str1)
print(str2)
datacamp tutorial on
python print function
print(str1,end=' ')
print(str2)
datacamp tutorial on python print function
Şimdi de görevi bir listedeki tüm değerleri aynı satırda yazdırmak olan bir fonksiyon örneği verelim. Bunu aşağıda gösterildiği gibi end argümanıyla başarabilirsiniz:
def value(items):
for item in items:
print(item, end=' ')
value([1,2,3,4])
1 2 3 4
-
file: Dosya benzeri bir nesne (akış); varsayılanı mevcut sys.stdout’tur. Burada print fonksiyonunun çıktısını yazmak veya eklemek istediğiniz dosyayı belirtebilirsiniz.fileargümanını kullanarak print fonksiyonunun çıktısını.csv,.txtgibi çeşitli biçimlerde bir dosyaya kaydedebilirsiniz. Bunu anlamak için, listedeki her öğe üzerinde yineleme yaptığınız ve çıktının bir metin dosyasına kaydedildiği bir örnek ele alalım. Bunu başarmak için önce print ifadesinin çıktısını kaydedeceğiniz birappenddurumunda bir metin dosyası açacaksınız. Ardından çıktısı metin dosyasına eklenecek fonksiyonu tanımlayacaksınız.
file = open('print.txt','a+')
def value(items):
for item in items:
print(item, file=file)
file.close() # fonksiyon yürütmesi tamamlandığında dosyayı kapatın.
value([1,2,3,4,5,6,7,8,9,10])
Yukarıdaki fonksiyon yürütmesi tamamlandığında, mevcut dizininizde print.txt adlı bir dosya görmelisiniz. Açıp içeriğine bakalım.

Yukarıdaki çıktısından, çıktıyı yalnızca terminale veya deftere yazdırmakla kalmayıp dosyalara da kaydedebileceğiniz açıktır.
-
flush: Akışın zorla temizlenip temizlenmeyeceğini belirler. Varsayılan olarak False’tur.Genellikle, bir dosyaya veya konsola çıktı arabelleğe alınır; en azından bir yeni satır yazdırılana kadar (Kaynak). Arabellek, çıktının, depolanmaya hazır olana veya dosya nihayet kapatılana kadar bir tür kayıt biriminde saklandığı anlamına gelir. Flush’ın görevi, arabelleğe alınan çıktının güvenli bir şekilde hedefe gitmesini sağlamaktır.
import time
print('Please enter your email-id : ', end=' ')
#print('Please enter your email-id : ', end=' ', flush=True) #farkı görmek için bunu çalıştırın ve üstteki satırı yorum satırı yapın.
time.sleep(5)
Please enter your email-id :
Yukarıdaki kod satırlarını terminalde çalıştırırsanız, uyku zamanlayıcısı bitip program sonlanana kadar istem metninin görünmediğini fark edeceksiniz (Kaynak). Ancak print fonksiyonuna flush=True eklerseniz, önce istemi görür, ardından programın bitmesi için 5 saniye beklersiniz.
Bir şekilde Jupyter Notebook veya Jupyter Lab bunu hallediyor ve 5 saniyelik zamanlayıcıdan önce istemi gösteriyor; dolayısıyla print’in bu işlevselliğini test etmek istiyorsanız, komut satırı terminalinde çalıştırdığınızdan ve jupyter notebook’ta çalıştırmadığınızdan emin olun.
Şimdi print fonksiyonunu kullanarak jupyter notebook’ta kullanıcıdan nasıl girdi alabileceğinize bakalım. Bunun için Python’un yerleşik input() fonksiyonunu kullanacaksınız.
tutorial_topic = input()
print("The topic of today's tutorial is: ", end='')
print(tutorial_topic)
Print Function
The topic of today's tutorial is: Print Function
Yukarıdaki hücreyi çalıştırır çalıştırmaz aşağıda gösterildiği gibi bir çıktı görmelisiniz:

Burada daha önce öğrendiğiniz isteğe bağlı adlandırılmış argüman end’i tanımladınız; bu argüman, print ifadesindeki statik ifadeyi kullanıcı girdisiyle birleştirir.
Değişken değerlerini print fonksiyonunun içinde yazdırmanın daha havalı yollarına bakalım.
- Bir değişkenin değerini önceden tanımlı bir dizeyle birlikte göstermek için yapmanız gereken tek şey araya bir virgül koymaktır. Burada önceden tanımlı dizenin ve değişkenin konumu önemli değildir.
a = 2
b = "Datacamp"
print(a,"is an integer while",b,"is a string.")
2 is an integer while Datacamp is a string.
-
formatargümanını kullanarak yazdırmak istediğiniz kadar değişkeni geçebilirsiniz. Değişkenleri format fonksiyonuna geçerken, önceden tanımlı dize içinde indis numaralarını (format argümanının içinde bulundukları sıra) belirtmeniz gerekir. Böylece bu print fonksiyonu sizin için bir şablon gibi davranacaktır.Unutulmaması gereken bir diğer nokta, burada indis numaralarının yer tutucu olarak küme parantezleri
{}ile gösterilmesidir.Aşağıdaki örnekle anlayalım:
a = 2
b = "Datacamp"
print("{0} is an integer while {1} is a string.".format(a,b))
2 is an integer while Datacamp is a string.
İkinci değişkenin indis numarasını her iki yere de koyarsanız, beklendiği gibi aynı değerler yazdırılır; bu durumda her ikisi için de b değişkeni.
print("{1} is an integer while {1} is a string.".format(a,b))
Datacamp is an integer while Datacamp is a string.
-
Print fonksiyonunuzun bir şablon gibi davrandığı
formatargümanına benzer şekilde, değişkenlerin değerlerini yazdırmak için yüzde (%) işaretini kullanabilirsiniz.Format argümanında olduğu gibi burada da yer tutucu kavramı vardır. Ancak
formatfonksiyonunda sadece indis numaralarını geçirirken, bunda yer tutucunun hangi veri türünü beklemesi gerektiğini de belirtmeniz gerekir.- %d, sayısal veya ondalık değerler için yer tutucu olarak kullanılır.
- %s, dizeler için yer tutucu olarak kullanılır.
a = 2
b = "Datacamp"
print("%d is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
a değişkeni bir tamsayı olduğu halde, %s belirtirseniz ne olacağına bakalım.
print("%s is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Yukarıdaki örnekte gördüğünüz gibi, yine de çalışır. Bunun nedeni, Print fonksiyonunun örtük olarak typecasting yapması ve tamsayıyı dizeye dönüştürmesidir. Ancak tersi doğru değildir. Bir dizeyi tamsayıya dönüştürmeyi başaramaz ve bir TypeError ile sonuçlanır.
Görelim.
print("%d is an integer while %d is a string."%(a,b))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-121-68c55041ecfe> in <module>
----> 1 print("%d is an integer while %d is a string."%(a,b))
TypeError: %d format: a number is required, not str
Sonuç
Eğitimi tamamladığınız için tebrikler.
Bu eğitim, Python’da yetkin olmayı hedefleyen başlangıç seviyesindeki kişiler için iyi bir başlangıç noktasıydı. Print fonksiyonuyla biraz daha denemeler yapabilir ve bu eğitimde yer verilmeyen birkaç işlevini daha keşfedebilirsiniz.
Lütfen bu eğitimle ilgili tüm sorularınızı aşağıdaki yorumlar bölümünde sormaktan çekinmeyin.
Python’a yeni başlıyor ve daha fazlasını öğrenmek istiyorsanız, DataCamp’in Introduction to Data Science in Python kursuna ve Python Functions Tutorial’a göz atın.
