Merhabalar, Python Yapay Zeka Günlüğü yazı serime devam ediyoruz. Bu yazımda Built in functions, user defined functions, default functions, flexible functions ve lambda functions konularına bakacağız. İlk olarak bu konu başlıklarının anlamlarına bakacağız sonra anlatımına geçeceğim.
Python Yapay Zeka Günlüğü #2 – Functions
- Built In Functions
- User Defined Functions
- Default Functions
- Flexible Functions
- Lambda Functions
Built In Functions
Built In Functions, phyton’da önceden tanımlanmış fonksiyonlara denir. Yani kullanıcı tarafından değilde kütüphaneler içerisinde yer alan önceden hazırlanmış fonksiyonlardır.
var1 = "ankara" var2 = "istanbul" var4 = "100" var5 = "200" integer_deneme2 = 25 float_deneme3 = -25.50 len(var1) # uzunluk, count() print(len(var1)) # ekrana yazdır() float(integer_deneme2) # convert To Double int(float_deneme3) # convert To int str(integer_deneme2) # convert To String type (float_deneme3) # tipini bul type (integer_deneme2) # tipini bul type (var1) # tipini bul range(5) # range(0,5) range(1,5) # range(1,5)
Built In Functions kullanmak için değişkenlerimiz var. Kod satırlarının yanına zaten açıklamaları yazıyor ama yine de açıklamak istiyorum.
Len(), parametre olarak verilen verinin kaç karakter olduğunu veriyor. Eğer bir list vs veri kümesi verildiğinde item sayısını veriyor.
Print(), parametre olarak verilen veriyi ekrana yazdırıyor.
Float(), paremetre olarak verilen veriyi float veri tipine çeviriyor.
Int(), paremetre olarak verilen veriyi int veri tipine çeviriyor.
Str(), paremetre olarak verilen veriyi string veri tipine çeviriyor.
Type(), paremetre olarak verilen değişkenin veri tipinin ne olduğunu söylüyor.
Range(), parametre olarak verilen değerler arasında bir dizi üretiyor diyebiliriz. For Loop ile kullanıldığında loop’un kaç kere döneceğini belirtir.
User Defined Functions
User Defined Functions, kendi özel işlemlerimiz için tanımladığımız fonksiyonlardır. Örnek bir hesaplamayı User Defined Functions olarak yeniden yazalım.
v1 = 50 v2 = 100 sonuc = ((((v1*v2)*5)+250)*v1/v2)/250
Hesaplamamız bu olsun. Şimdi User Defined Functions olarak yeniden yazalım.
def Hesapla(param1, param2): """ Burası fonksiyonun açıklamasıdır. Parametre: param1, param2 return: sonuc """ return ((((param1*param2)*5)+250)*param1/param2)/250
User Defined Functions bu şekilde tanımlanmaktadır. Şimdi fonksiyonu açıklayalım.
- Fonksiyonlar def (defination) anahtar kelimesi ile başlar.
- “”” * “”” kısımları arasına fonksiyon ile ilgili bilgiler yazılır.
- Return olarak hesaplamanın sonucu gönderilir.
- Burada return verilmesi zorunlu değildir.
- Kullanımı Hesapla(5,20) şeklindedir.
Çemberin çevresini hesaplayan bir User Defined Functions yazalım.
def CemberCevresi(r): # default parametre değeri """ Çember çevresi hesaplama foksiyonu Input(Parametre): r, pi Ouyput(Return): Çemberin Çevresi (float) """ return 2*3.14*r CemberCevresi(2)
Default Functions
Default Functions, parametreleri default değer alan User Defined Functions ‘dur. Yukarıdaki çemberin çevresini hesaplayan fonksiyon üzerinde görelim.
def CemberCevresi(r, pi = 3.14): # default parametre değeri """ Çember çevresi hesaplama foksiyonu Input(Parametre): r, pi Ouyput(Return): Çemberin Çevresi (float) """ return 2*pi*r CemberCevresi(2)
Parametre tanımlama kısmında gördüğünüz gibi, parametreye bir değer vermişsek, bu değer o parametrenin varsayılan değeridir. Varsayılan değer alan parametreleri fonksiyonu kullanırken yazmamıza gerek yoktur. Varsayılan değerden farklı bir değer göndermek istiyorsak o zaman dışarıdan değer verebiliriz
NOT: Default değeri olan parametreler her zaman en sona yazılır. Şart değildir ama alışılmış yöntem budur.
Flexible Functions
Flexible Functions, dinamik parametre alan fonksiyonlardır. Sabit olarak verilen parametrelerden hariç olarak fonksiyonun sınırsız sayıda parametre almasını sağlar. Şimdi bir örnek üzerinde görelim.
def Hesaplama(boy,kilo,*args): """ Anlamsız bir hesaplama input (parametre) : boy, kilo, *args output (retun) : boy+kilo / *args """ print(args) output = (boy+kilo) + args[0] + args[1] # 1.indexreki değeri aldık output = (boy+kilo) + args[len(args)-1] # son sıradaki değeri aldık return output Hesaplama(5,5,20,5,6,7,8,9)
Yukarıdaki anlamsız bir hesaplama yapan foksiyonumuzu inceleyelim. *args kısmını görmüşsünüzdür. Bu *args ifadesi sayesinde bu fonksiyon sayısız parametre alabilir. *args parametresi için gönderilen her değer bir dizi içerisinde tutulur ve o değerlerin hepsine index numaralarına göre ulaşabiliriz. Örnekte *args içerisinde eklenen verileri nasıl aldığımızı görebilirsiniz.
Lambda Functions
Lambda Functions, basit bir fonksiyonu tek satırda yazabileceğimiz bir yazım şeklidir. Aşağıdaki normal bir fonksiyonu lambda fonksiyona çevirelim.
#User Defined Function def hesapla(x): return x*x sonuc = hesapla(3) print(sonuc) # Lambda Function sonuc2 = lambda x: x*x # daha hızlı bir şekilde fonksiyon yazmak için. print(sonuc2(3))
Lambda Funciton, lambda anahtar kelimesi ile kullanılmaktadır. Örnekte gördüğünüz gibi bir fonksiyonu tek satırda yazabilmemizi sağlıyor.
Python Yapay Zeka Günlüğü Quiz
Yazıyı bir soru ve çözümü işle bitireyim.
Default ve Flexible olan ve değişken dönüşümleri yapıla bir user defined function yazın.
def Soru1(yas, isim, soyisim = "asd", *args): print( type(yas)) print(len(isim)) print(args) print( "Yaş: " + str(yas) + " İsim: " + isim + " Soyisim: " + soyisim + " Diğer: " + str(args[0])) return yas * args[0] Soru1(28,"mustafa","bükülmez",42,50)
Python Yapay Zeka Günlüğü #2 – Functions yazımda bu kadardı arkadaşlar. Diğer yazılarımda görüşmek üzere
Diğer yazılarımda görüşmek üzere… Buraya tıklayarak tüm Python yazılarıma ulaşabilirsiniz.
Sağlıcakla ve Takipte kalın. :)