-
Bir fonksiyonu çalıştırdığımızda onun sonucuyla bir şeyler yapmak isteyebilirim. Sonucu bana versin diye özellikle söylemem lazım ve bunu
returnkeyword'u ile sağlayacağız. -
returnyazmasaydık fonksiyon hiç bir şey döndürmezdi. -
Fonksiyon tanımladığımı Python'a anlatmak için yapım:
def fonksiyonun_adı(input):
-
Öbür yapılarda da olduğu gibi, bir kod bloğunun belirttiğimiz yapıya ait olduğunu anlatmak için boşluk bırakarak içine yazmamız gerekiyor.
-
Verdiğimiz değerin karesini alan bir fonksiyon yazalım.
def square(x):
x*x- Fonksiyonu tanımladıktan sonra tanımladığımız adla onu çağırabiliriz. Yapımız şöyle olacak:
fonksiyonun_adı(inputlar), bir fonksiyonu çağırmak için inputlarını()'ın içine yazmalıyız. Bazı durumlarda hiç input olmayabilir, bazı durumlarda birden çok olabilir.
square(3)a = square(3)aprint(a)None
type(a)NoneType
type(square(3))NoneType
- Bize x*x i değer olarak vermedi. Vermesi için bana o değeri döndür diye özellikle söylemem lazım. Bunu
returnile sağlıyoruz.
def square(x):
return x * xsquare(2)4
a = square(2)a4
b = 4b + 26
- Bu döndürülen değerin int 4 'ten bir farkı yok, nereden nasıl geldiği önemli değil, a = 4 dediğimdeki 4 ile aynı. Bu değerle istediğimi yapabilirim
1 + square(2)5
- Bilgisayar için o da sadece bir değerdi. Aşağıdaki örenekte de square(3) bize 9 döndürüyor, bilgisayar için aşağıdaki kod,
square(9)ile aynıdır.
square(square(3))81
- Hiç bir inputu olmayada bilirdi.
def weird():
return 5weird()5
- Fonksiyonlar return'e geldikten sonrasına bakmıyor, return 'ün sağına yazılan değeri veriyor ve fonksiyondan çıkıyor.
def square(x):
res = x * x
return res
print("Square of " + str(x) + ": " + str(res))
- Bu yüzden burada bastırma kısmını yapmadı çünkü o kod
return'ün altında yer alıyor.
square(4)16
square(4) + 218
def square(x):
res = x * x
print("Square of " + str(x) + ": " + str(res))
return res
square(4)Square of 4: 16
16
- Fonksiyona durumsallık da katabiliriz.
def f(x):
res = x * x
if x % 2 == 0:
return res
else:
return res + 10
print("Square of " + str(x) + ": " + str(res))
f(10)100
f(13)179
- Fonksiyonların içinde döngü mantığı da olabilir.
x = 300def f(x):
res = x * x
for i in range(10):
res += 20
return res
print("hey")f(10)120
f(10) + 23143
def f(x):
res = x * x
for i in range(10):
res += 20
return resf(10)300
def f(x):
l = []
res = x * x
for i in range(10):
res += 20
l.append(res)
return lf(10)[120, 140, 160, 180, 200, 220, 240, 260, 280, 300]
def f(x):
x = 2f(2)f(10) + 4---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-85-abd191062736> in <module>
----> 1 f(10) + 4
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
print(f(3))None
type(f(3))NoneType
# Bu kod x in karesini değer olarak bize vermiyor, sadece ekrana bastıracak
def square(x):
print(x,"in/ün/un karesi:", x*x)square(3)3 in/ün/un karesi: 9
type(square(4))4 in/ün/un karesi: 16
NoneType
# hem bir değer bastırıp aynı anda o değeri döndüre de bilirdi
def square(x):
res = x * x
print(x,"in/ün/un karesi:", x*x)
return ressquare(4)4 in/ün/un karesi: 16
16
square(4) + 24 in/ün/un karesi: 16
18