1. Ana Sayfa
  2. Python

Python Yapay Zeka Günlüğü #2 – Functions

Python Yapay Zeka Günlüğü #2 – Functions
+ - 0

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

  1. Built In Functions
  2. User Defined Functions
  3. Default Functions
  4. Flexible Functions
  5. 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.

  1. Fonksiyonlar def (defination) anahtar kelimesi ile başlar.
  2. “”” * “”” kısımları arasına fonksiyon ile ilgili bilgiler yazılır.
  3. Return olarak hesaplamanın sonucu gönderilir.
    • Burada return verilmesi zorunlu değildir.
  4. 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. :)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)