Fonksyionlarda return

Merhaba arkadaşlar. Aşağıda iki farklı şekilde tanımlanmış fonksiyon örneği vereceğim:

def birinci()
    print(2*2)
def ikinci()
    return 2*2

İkinci olanda kullanılan return neden gereklidir? Değer döndürmek ne demektir?
Yani, iki fonksiyon da aynı işlevi görüyorken, neden return kullanıyorsunuz?

def foo():
    return "foo"
a = foo()
print(a)
# böylece fonksiyondan dönen değeri bir değişkene atayabildik böylece bu değeri 
# istediğimiz yerde kullanabiliriz.
# dönen değer: fonksiyon bitiminde bize verdiği değer

iki fonksiyonda aynı işlevi yapmıyor mesela bir örnek ile göstereyim
sen bir sayının karesini alacak bir fonksiyon yazdığında o fonksiyon senin dediğin şekilde kullanamazsın
yani

def karesi(sayi):
     print(sayı**2)

sayımın_karesi = karesi(10)

dediğimizde istediğimiz şeyi elde edemiyoruz o fonksiyon sadece ekranımıza sayının karesini yazdırmış oluyor ekrana yazdırdığı veriyi kullandırtmıyor
ama return ile o değeri geri döndürseydik yani veri olarak verseydik kişi o veriyi kullanabilecekti

https://python-istihza.yazbel.com/fonksiyonlar.html#return-deyimi

1 Beğeni

Bir noktada kafamda bir şeyler oturmuş oldu sayenizde, teşekkür ediyorum.

print fonksiyonunun amacı verdiğimiz değeri komut satırında bastırmak. Ama yazdığımız fonksiyonlar hep komut satırına bastırmak değil. Mesela iç içe fonksiyonlar olabilir. Bir fonksiyon başka bir fonksiyondan gelen parametreyi alabilir. Yani demek istediğim return deyimini fonksiyonun sonucu gibi düşünebilirsiniz. Fonskiyonunuz çalışınca size bir değer veriyor. print ise komut satırına yazı yazdırmaya yarar. İç içe fonksiyonlarda daha iyi anlarsınız farkını:

def kare(sayı):
    return sayı**2
def küp(sayı):
    return sayı**3
print(kare(küp(2)))

Bu örnekte ilk olarak 2’ nin küpünü alıp sonra gelen sonucun karesini aldık mesela.
Eğer print kullansaydık kare fonksiyonu çalışmayacaktı.

1 Beğeni

Teşekkürler. Bu da gayet açıklayıcı oldu benim için :slight_smile:
Özetle, return sayesinde bir fonksiyonun sonucunu, başka bir fonksiyon içerisinde kullanabiliyoruz. Ancak print ile çıktısını aldığımız taktirde fonksiyonun görevi sadece ekrana çıktı vermek oluyor.

Teşekkür ediyorum cevaplarınız için :slight_smile:

2 Beğeni