Python Kullanıcı Tanımlı Fonksiyonlar – User Defined Function
Çok fazla tekrarlayan işlemleri bir fonksiyon haline getirerek, işlem gerektikçe ilgili fonksiyon çağırılarak, program yazmak oldukça etkin bir tekniktir.
Kullanıcı tarafında başlayan bir fonksiyon def sözcüğü ile başlar ve aşağıda yazılan formda devam eder
def fonksiyon_adi(parametre):
komut 1
komut 2
.
.
komut n
return ifade
return’de ifade mevcut ise fonksiyonu çağıran programa gönderilir, mevcut değilse return deyiminin bir işlevi olmayacaktır.
Aşağıda pythonda yazılmış çeşitli fonksiyon örneklerini çıktılarıyla beraber göreceksiniz.
""" Çarpma İşlemi Yapan Fonksiyon """
def carp(x, y):
return x * y
print(carp(5, 15))
print(carp(7, 9))
"""
75
63
"""
""" Toplama İşlemi Yapan Fonksiyon """
def top(x, n):
s = 0
for i in range(0, n):
s = s + x[i]
return s
dizi = [5, 68, 987, 4, 5]
print(dizi)
print("Dizi Toplamı=", top(dizi, 5))
"""
[5, 68, 987, 4, 5]
Dizi Toplamı= 1069
"""
""" Kombinezon Formülü; Hesaplama Fonksiyonu """
def fakt(n):
f = 1
for i in range(1, n + 1):
f = f * i
return f
print()
n = input("n=")
n = int(n)
r = input("r=")
r = int(r)
cnr = fakt(n) / (fakt(r) * fakt(n - r));
print("C(", n, ",", r, ")=", cnr)
"""
n=15
r=5
C( 15 , 5 )= 3003.0
"""
""" Fonksiyon Çağırmada Parametre Değerlerinin Değiştirilmesi """
def topla(a, b, c):
return a+b+c
print("5+6+7=", topla(3,4,5))
print("13+9+(-3)=", topla(13,9,-3))
print("6+3+4=", topla(6,3,4))
"""
5+6+7= 12
13+9+(-3)= 19
6+3+4= 13
"""
""" Fonksiyon Çağırmada Parametre Değerlerinin Değiştirilmesi V2 Call By Value"""
def topla2(a, b, c):
a=a-5
b=b+1
c=c-2
print("a=", a, "b=", b, "c=",c)
print("a+b+c", a,"+", b,"+",c,"=", a+b+c)
return a+b+c
x=5
y=6
z=8
print("x=",x,"y=",y,"z=",z)
print("Toplam=", topla2(x,y,z))
print("x=",x,"y=",y,"z=",z)
"""
x= 5 y= 6 z= 8
a= 0 b= 7 c= 6
a+b+c 0 + 7 + 6 = 13
Toplam= 13
x= 5 y= 6 z= 8
"""
""" Fonksiyon Çağırmada Parametre Değerlerinin Değiştirilmesi V2 Call By Reference"""
dizi2=[11,2,13,4,15,7]
print("dizi LİSTESİ:", dizi2)
def or_fonk(x):
x[2]=111
x[4]=44
print("or_fonk taki liste:", x)
or_fonk(dizi2)
print("Fonksiyon Çağrısından Sonraki Liste:", dizi2)
"""
dizi LİSTESİ: [11, 2, 13, 4, 15, 7]
or_fonk taki liste: [11, 2, 111, 4, 44, 7]
Fonksiyon Çağrısından Sonraki Liste: [11, 2, 111, 4, 44, 7]
"""
""" Farklı uzunluktaki listelerle fonksiyon çağırma"""
def kare(d):
print(d)
for u in d:
print(u*u)
return
kare([3])
kare([13,4,5])
kare([13,6,8,-6,-4,3])
"""
[3]
9
[13, 4, 5]
169
16
25
[13, 6, 8, -6, -4, 3]
169
36
64
36
16
9
"""