Teşekürler peki şunu nasıl açıklarsınız?
Mesela en basitinden
def deneme():
return ‘end’
Burada deneme() komutu ‘end’ çıktısı veriyor print olmadığı halde.Ancak yazdığım soruda olmuyor.
aynı kodu printle yazdığımda
def deneme()
print(‘end’) ise end çıktısı veriyor ’ ’ olmadan.
Ben soruda return ile yazdığımda ’ ’ içinde end yazmasını bekliyordum ama çıktı vermedi.
Ornegin, “ters_yazdir” fonksiyonumuz, girilen string nesnesini tersten yazdirsin. Bizim de bu fonksiyonun ciktisini kullanabilmemiz lazim olsun. Bunu su kod parcasi ile saglayamayiz (saglariz ama gereksizce mesakkatli bir yontem ile):
Bu kod parcasi istedigimiz ciktiyi uretiyor ama onu dondurmuyor (return etmiyor), yalnizca basiyor (print).Bizim bu ciktiyi baska bir islemde kullanabilmemiz icin veya bir nesne olarak saklayabilmemiz icin onun dondurulmesine ihtiyacimiz var:
Yani print ifadesi olmadan ciktiyi alabiliyor olmamizla ilgili aklima gelen tek sey, belki kod parcacigi bir komut satirinda yurutuluyorsa bu sebepten oturu ciktiyi aninda alabiliyor olmamiz:
Komut satirinda tanimladigimiz bir degiskeni cagirinca dogrudan tuttugu degeri yazdirmasi gibi bir durum oluyor bence. Eger bu da degilse, sebebini ben de bilmiyorum
Ekrana yazdırmasıyla ilgili sanırım şöyle bir durum oluyor.Mesela
a=‘end’
şeklinde bir end değişkeni belirlediğimizde tekrar a komutu verdiğimizde ‘end’ çıktısı veriyor.Yani a ekrana yazdırılmıyor bu durumda sadece a değişkeninin ne olduğunu görüyoruz.
def deneme():
return ‘end’
burada da aynı durum oluyor.‘end’ ekrana yazdırılmasa da böyle bir değişken belirlenmiş oluyor.zaten
def deneme():
print(‘end’) ekrana end çıktısını verirken ilk durum ‘end’ çıktısı veriyor.İkisi arasında fark var.Ben ekrana yazdırıyor gibi düşünmüşüm ancak sonradan anladım hatamı.Cevaplar için teşekkürler