Python Return komutu ne işe yarar?

DodgeThis

Centipat
Katılım
14 Nisan 2024
Mesajlar
61
Daha fazla  
Cinsiyet
Erkek
Kafayı yiyorum. Return komutu neye yarıyor? Anlayamıyorum bir türlü. Rica etsem biri olabildiğince basit bir şekilde açıklayabilir mi?
 
Bir değişken oluşturdun mesela sayi = 10 diye sayi değişkenini kullandığın her yerde 10 değeri geliyor sana bunu aklında tut. Bir fonksiyon yazdın fonksiyon adı def fonk_1 olsun bunu kullanırken fonk_1() çağırıyorsun fonksiyonu tanımladığın yerde return 10 veya return değer gibi birşey tanımlarsan fonksiyonu tamamlar ve fonksiyondan çıkış yapar. eğer fonksiyonu çağırdığın yer print(fonk_1()) gibi birşey ise ya da a=fonk_1() ise a değerini yada printe returnde yazdığın değeri döndürür tıpkı en başta bahsettiğim değişken misali. sadece return yazdığında ise fonksiyondan çıkıyor sadece bir değer döndürmüyor.
 
Programlama matematiktir, fonksiyonlar cagrilirlar. Function call -> FC

Fonksiyonlar cagirildiklarinda, kendisini cagirana yaptigi islem sonucunu "return" ederler.

Her uygulamada "main" fonksiyonu bulunur, bu isletim sisteminin cagiracagi ilk fonksiyondur ve her sey yolunda giderse isletim sistemine 0 return eder.

Uygulamada tanimli diger fonksiyonlar da, mainin baslattigi bir hiyerarside birbirini cagirir. Buna da call stack denir. CallStack

StackOverflow da adi gecen stack bu stack iste. Onu da recursion ogrendigin zaman daha iyi anlarsin.
 
Programlamada fonksiyonlar matematikteki fonksiyonlardan esinlenilmiş şeyler.

Öncelikle matematikte fonksiyona bakalım... Fonksiyon, matematikte değişken sayıları girdi olarak kabul edip bunlardan bir çıktı sayısı oluşmasını sağlayan kurallardır.

Örneğin f(x) = 3 + 5x; 'i ele alalım. f(3) verdiğimizde, f(3) = 3 + 5(3) olacak ve bu da 18 olarak bize geri dönecek. Biz f(3) = 18'î görmüş olacağız. Programlama da fonksiyonlarda aynı mantıkla hareket ediyor ancak ufak bir farklılık var. Biz fonksiyonda birden fazla işlemi aynı anda yapabiliyoruz programlamada. Dolayısıyla oluşturduğumuz değerlerden hangisini kullanıcıya geri döndüreceğimizi seçmeliyiz.

Yine aynı fonksiyonu yazdığımızı düşünelim;
Python:
def f(x):
    return 3 + 5x

Bunu f(3) olarak çağırdığımızda bize 18 verecek. Eğer return keyword'ünü kullanmazsak, hiç bir şey vermeyecek. Bunun arkasındaki sebep daha öncede söylediğim gibi, biz fonksiyonlarda birden fazla değişken oluşturabiliyoruz ve birden fazla değişkenden, hangisinin kullanıcıya gitmesini istediğimizi seçmemiz gerekiyor. Hepsini gönderseydik, kullanıcılarında kafası karışırdı. Mesela bir şeyin faktöriyeline bakalım.

Matematikte bunun için g(x) = x! dememiz yeterli. Ancak programlama da çoğu dilde bunu bizim için yapacak böyle bir şey yok. Bunu programda fonksiyona dökmek istediğimiz zaman, döngülerle şöyle yaparız;

Python:
def g(x):
    result = 1
    for i in range(1, x + 1):
        result *= i
    return result

Farkındaysan bu fonksiyonda üç farklı değişken yer alıyor. Birincisi result, ikincisi i, üçüncüsü ise x. Eğer fonksiyonda return yerine her şeyi dışarı çıkartma özelliği olsaydı, return hiç var olmamış olsaydı, kullanıcının kafası karışacaktı. O faktöriyel istemişti ama ben ona (120, 5, 5) göndermiş olacaktım... Bunun yerine return result dediğimde programa sonucu göndermek istediğimi belirtmiş oluyorum, böylece kullanıcı da, faktöriyel'in sonucunu görüyor.
 
Python'da bir fonksiyonu çağırdığında, sırasıyla fonksiyon içerisinde yer alan işlemleri gerçekleştirirsin. return ifadesi ise fonksiyonun sana vereceği geri dönütü belirler.

Örneğin benim basit bir toplama fonksiyonum olsun. Bu fonksiyon a ve b olmak üzere iki parametre alacak, a+b'yi döndürecek. Eğer ben sadece bir fonksiyon tanımlayıp a+b işlemini yaptırırsam bu işlem gerçekleşir fakat fonksiyon istediğin geri dönütü vermez. Sadece a ve b'yi toplamış olur. Ama sen return kullanarak a+b'yi sana döndürmesini istersen fonksiyon bu durumda işlemi gerçekleştirir ve sana a+b'yi döndürür. Hadi bunu deneyelim:

Python:
def basicSum(a,b):
    a+b

print(basicSum(2,3))

Yukarıdaki kod sana verdiğim ilk örnek. Basit bir toplama fonksiyonu tanımladım ve a+b işlemini yaptırdım. Bu kodu çalıştırdığında None çıktısını alırsın. Çünkü return ifadesi ile herhangi bir veri döndürmeyen fonksiyonlar None keyword'ünü döndürür.

Python:
def basicSum(a,b):
    result = a+b
    return result

print(basicSum(2,3))

Yukarıdaki kod ise sana verdiğim ikinci örnek. Toplama işlemi yapıldı ve ardından fonksiyona neyi bize getirmesi gerektiğini söyledik. Bu kodu çalıştırırsan beklediğin üzere 5 çıktısını alırsın.

Bunu farklı bir açıdan da ifade edebiliriz. Arkadaşından bir elma soymasını istedin. Arkadaşın bir elma soydu ama sana getirmedi, çünkü sana getirmesini istemedin, sadece elma soymasını istedin. Eğer sana getirmesini isteseydin sana getirirdi. Bu da ilginç bir örnek. *swh
 
Son düzenleme:
Beynimin son hücresini de buna harcadım ve sonunda anladım gibi. Cevaplarınız için teşekkürler.

Return ifadesinin yanına verilen değer fonksiyonun çağrıldığı yere aktarılır.

Sen fonksiyon içine return value gibi bir ifade koyduğunda tabii Value fonksiyonun ortaya çıkardığı bir değişken atıyorum bir dosyadaki karakter sayısı olsun.

print(fonksiyon()) yaptığınızda size Value değeri döner.
 
Python'da bir fonksiyonu çağırdığında, sırasıyla fonksiyon içerisinde yer alan işlemleri gerçekleştirirsin. return ifadesi ise fonksiyonun sana vereceği geri dönütü belirler.

Örneğin benim basit bir toplama fonksiyonum olsun. Bu fonksiyon a ve b olmak üzere iki parametre alacak, a+b'yi döndürecek. Eğer ben sadece bir fonksiyon tanımlayıp a+b işlemini yaptırırsam bu işlem gerçekleşir fakat fonksiyon istediğin geri dönütü vermez. Sadece a ve b'yi toplamış olur. Ama sen return kullanarak a+b'yi sana döndürmesini istersen fonksiyon bu durumda işlemi gerçekleştirir ve sana a+b'yi döndürür. Hadi bunu deneyelim:

Python:
def basicSum(a,b):
    a+b

print(basicSum(2,3))

Yukarıdaki kod sana verdiğim ilk örnek. Basit bir toplama fonksiyonu tanımladım ve a+b işlemini yaptırdım. Bu kodu çalıştırdığında None çıktısını alırsın. Çünkü return ifadesi ile herhangi bir veri döndürmeyen fonksiyonlar None keyword'ünü döndürür.

Python:
def basicSum(a,b):
    result = a+b
    return result

print(basicSum(2,3))

Yukarıdaki kod ise sana verdiğim ikinci örnek. Toplama işlemi yapıldı ve ardından fonksiyona neyi bize getirmesi gerektiğini söyledik. Bu kodu çalıştırırsan beklediğin üzere 5 çıktısını alırsın.

Bunu farklı bir açıdan da ifade edebiliriz. Arkadaşından bir elma soymasını istedin. Arkadaşın bir elma soydu ama sana getirmedi, çünkü sana getirmesini istemedin, sadece elma soymasını istedin. Eğer sana getirmesini isteseydin sana getirirdi. Bu da ilginç bir örnek. *swh
Mükemmel anlatmışsınız hocam 👏
 

Technopat Haberler

Geri
Yukarı