# return
* Bir fonksiyonu çalıÅtırdıÄımızda onun sonucuyla bir Åeyler yapmak isteyebilirim. Sonucu bana versin diye özellikle söylemem lazım, bunu `return` keyword'ü ile saÄlayacaÄız
* `return` yazmasaydı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
```python
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.
```python
square(3)
```
```python
a = square(3)
```
```python
a
```
```python
print(a)
```
None
```python
type(a)
```
NoneType
```python
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 `return` ile saÄlıyoruz
```python
def square(x):
return x * x
```
```python
square(2)
```
4
```python
a = square(2)
```
```python
a
```
4
```python
b = 4
```
```python
b + 2
```
6
* 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
```python
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ı
```python
square(square(3))
```
81
* hiç bir inputu olmaya da bilirdi
```python
def weird():
return 5
```
```python
weird()
```
5
* Fonksiyonlar return'e geldikten sonrasına bakmıyor, return ün saÄına yazılan deÄeri veriyor ve fonksiyondan çıkıyor
```python
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
```python
square(4)
```
16
```python
square(4) + 2
```
18
```python
def square(x):
res = x * x
print("Square of " + str(x) + ": " + str(res))
return res
```
```python
square(4)
```
Square of 4: 16
16
* Fonksiyona durumsallık da katabiliriz
```python
def f(x):
res = x * x
if x % 2 == 0:
return res
else:
return res + 10
print("Square of " + str(x) + ": " + str(res))
```
```python
f(10)
```
100
```python
f(13)
```
179
* Fonksiyonların içinde döngü mantıÄı da olabilir
```python
x = 300
```
```python
def f(x):
res = x * x
for i in range(10):
res += 20
return res
print("hey")
```
```python
f(10)
```
120
```python
f(10) + 23
```
143
```python
def f(x):
res = x * x
for i in range(10):
res += 20
return res
```
```python
f(10)
```
300
```python
def f(x):
l = []
res = x * x
for i in range(10):
res += 20
l.append(res)
return l
```
```python
f(10)
```
[120, 140, 160, 180, 200, 220, 240, 260, 280, 300]
# Void Fonksiyonlar (DeÄer Döndürmeyen Fonksiyonlar)
```python
def f(x):
x = 2
```
```python
f(2)
```
```python
f(10) + 4
```
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)