Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
252
Tıklama
0
Öne Çıkarma
Return Statement Ne İşe Yarıyor?
A
7 yıl
Binbaşı
Konu Sahibi

def tax(bill):
"""Adds 8% tax to a restaurant bill."""
bill *= 1.08
print "With tax: %f" % bill
return bill


Değeri geri gönderdiğini biliyorum ama mantığını tam kavrayamadım. Yukarıdaki örnekte misal, "bill *= 1.08" ile zaten fonksiyonun değerini tanımlamış olmuyor muyuz? Ekstradan neden return demek zorundayız. Bu kodda return'ü silersek ne olur?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



.
7 yıl
Çavuş

hangi dil bilmiyorum.c# ta return ifadesi olmazsa hata verir.çünkü fonksiyona başta döndüreceği veri tipini söylüyoruz fonksiyon içinde de bu veri tipinden birşey return etmek gerek.return ile çıkan sonucu gönderiyorsun aslında.bu fonksiyonun değeri demek değil.



B
7 yıl
Onbaşı

Dil python2, niye 3 değil? 2'nin zamanı geçiyor artık, 3'ü öğrenmenizi tavsiye ederim.
Çalıştığınız kaynak ne bilmiyorum ama bu soruyu sorduğunuza berbat bir kaynak veya siz kodu öylesine bir yerden buldunuz.

return deyimini kaldırırsak o fonksiyon çalışır çalışır hiçbir şey olmaz.
diyelim ki programın bir yerinde tax(100) diyerek fonksiyonu çağırdım, ne olur, boşu boşuna fonksiyon çalışır, elimde bir sonuç yok.

return deyimini kaldırmadım, yerinde duruyor tax(100) dedim, ne olur, gene boşu boşuna çalışır. bu sefer elimde bir sonuç vardı ama ben onu tutmadım. o yüzden result = tax(100) dersem fonksiyon bana 108 döndürür, bunu result'a atadığım için de result = 108 olur.

Fonksiyonda print ifadesi de varmış, o zaman fonksiyon boşu boşuna çalışmaz ekrana 108'i yazar, ama adam demek ki bu 108'i başka bir yerde kullanabilmek için geriye return etmiş, böylece bunu kullanarak bir şeyler daha yapabilecek.





< Bu mesaj bu kişi tarafından değiştirildi bombergranade -- 3 Nisan 2018; 0:59:23 >

V
7 yıl
Onbaşı

güzel bir dil seçmişsin başlangıç için. Python.. ama 2 yerine 3 ile başlayabilirsin.

return etmezsen etmemiş olursun, zaten tek amacın bill'in değerini yazdirmaksa bişey geri döndürmene gerek yok.

ama her zaman sonucu direk yazdırmak istemeyebilirsin. örneğin hesaplatıp sonuna para birimi olarak TL ve USD karşılığını ekletmek isteyebilirsin. her bir para birimi için bir fonksiyon yazıp hesaplatmaktansa bir tane hesaplama fonksiyonu yazıp, fonksiyonu çağırıp, sonuna para birimini yazabilirsin.

ornek;

def tax(bill):
bill *= 1.08
return bill

calculatedTax = tax(50);
print "With tax: %f TL" % calculatedTax
print "With tax: %f USD" % (calculatedTax / 4)


veya iki farklı taxlı hesabı toplaman gerekebilir;

totalAmount = tax(50) + tax(60)
print totalAmount

gibi...

ayrıca kendi fonksiyonlarını yazdıkça işlerin kötü gitmesi durumunda kendine özgü return'ler de yollayabilirsin. örnegin iki sayıyı birbirine bölen bir fonksiyon yazdın ama bölen parametresine kullanıcı 0 gönderdi.. fonksiyonuna eğer bölen 0 ise return "sıfıra bölüm tanımsız/anlamsız" diyebilirsin.

bir şey daha; bir fonksiyona bir kaç kez return yazabilirsin. if statementları kullanarak..
örnegin 10 tlden aşağısında tax hesaplatmadan aynı değeri döndürmek istiyorsun;

def tax(bill):
if bill<10: return bill
bill *= 1.08
return bill


eğer fonksiyonun bir return ile karşılaşırsa hiç devam etmeden sonucu döndürür.. aşağılara bakmaz yani..





< Bu mesaj bu kişi tarafından değiştirildi vona70 -- 3 Nisan 2018; 1:4:56 >

A
7 yıl
Binbaşı
Konu Sahibi

Hepinize teşekkür ederim. Kullandığım kaynak CodeAcademy. Bana da yetersiz geldi. Birkaç üzerinden daha da çalışacağım.




Bu mesajda bahsedilenler: @vona70 , @.Netcii , @bombergranade
K
7 yıl
Çavuş

teknik açıklaması:fonksiyonu sonlandırır yanındaki ifade ile çağrılan koda geri döner.returnden sonraki deyimler çalıştırılmaz



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.