Python 13-Fonksiyon II -Fonksiyon Yapısı- Big Datacı

Önceki yazıda fonksiyonların tanımlamasından ve kayıt oluşturmadan bahsetmiştik. Bu yazıda ise parametresiz, parametreli ve sınırsız sayıda parametreli fonksiyon ve return ifadesiyle örnekler yapacağız.

Python’da daha öncesinde de görmüş olduğumuz print(), open(), type() gibi fonksiyonlar gömülü fonksiyondur. Bu fonksiyonların gömülü olmasının sebebi herhangi bir çağırmaya gerek duymamasıdır. Örneğin biz bir fonksiyon yazdığımızda onu çağırmadan çalıştıramıyoruz fakat gömülü fonksiyonlar çağırmadan da çalışabilmektedir.

def greeting(name):
    print("hello",name)
    
greeting("Simay")
greeting("Bigdataci")

Kodun çıktısı

Yukarıdaki örnekte olduğu gibi print fonksiyonunu çalıştırırken herhangi bir çağırma işlemini gerçekleştirmedik. Ancak greeting fonksiyonunu çalıştırırken çağırma işlemini gerçekleştirmek zorunda kaldık.

Parametresiz Fonksiyon

Örneğin bir sayının karekökünü bulmaya çalışırsak, bunu bulurken fonksiyonları kullanarak daha fazla sayıda işlemi bir arada gerçekleştirebiliriz.

def karekokbul():
    number=81
    output="{} sayisinin karekökü {} sayisidir."
    print(output.format(number, number**0.5))

karekokbul()

Kodun çıktısı

Yukarıda yapılan örnekte 81 sayısının karekökü 9 bulunmuştur. 81’in yani sayının bulunduğu yere bakarsanız birazdan onun yerinin değiştiğini göreceksiniz.

Parametresiz bir fonksiyon olduğu için parantez içerisinde herhangi bir sayı belirtmiyoruz.

Parametreli Fonksiyon

Fonksiyonun tek bir sayıyla işlem yapması yerine kullanıcının gireceği sayıyla işlemi yapabilmesi için fonksiyona parametre özelliği kazandırılır. Böylece fonksiyon içerisine farklı sayılar girilerek işlemler yapılabilir.

def karekok_bul(sayi):
    sonuc="{} sayisinin karekökü {} sayisidir."
    print(sonuc.format(sayi, sayi**0.5))

karekok_bul(100)

Kodun çıktısı

Yukarıdaki örnekte karekok_bul fonksiyonu çağrılarak 100 değeri yazılmıştır ve sonuç olarak 10’u vermiştir.

Sınırsız Parametre Alabilen Fonksiyonlar

Bu zamana kadar yapılan örneklerde ele alınan parametre sayısı belliydi. Peki parametre sayısını belirsiz bir şekilde alıp bir fonksiyon yazabilir miyiz?

Örneğin 100,200.300,400 ve 500 sayılarını parametre değeri belirlemeden yazdırmaya çalışalım.

def function(*parameters):
    print(parameters)
    
function("Hello","Bigdataci")
function(100,200,300,400,500)

Kodun çıktısı

Görüldüğü gibi hem string hem de integer türünde sınırsız parametreli fonksiyonlar yazdırabiliyor.

Peki sınırsız değer alan parametreleri nerelerde kullanabiliriz?

Örneğin belirsiz sayıda bir toplama işlemi yapacağımızı varsayalım.

def topla(*sayilar):
    cikti=0
    for i in sayilar:
        cikti+=i
    print(cikti)

topla(100,200,300,400)

Kodun çıktısı

Yukarıda görüldüğü gibi sonradan belirlenen 100,200,300,400 sayılarının toplamının çıktısı 1000 olmuştur.

Şimdi ise önceki yazıda olduğu gibi kayıt oluşturmaya dair bir örnek yapalım.

def new_student(**para):
    print("."*50)
    for know, value in para.items():
        print("{}: {}".format(know, value))
    print("."*50)
    
new_student(name="Simay",surname="Avcı",number="123456789", department="Industrial Engineering")
new_student(name="Ilgaz", number="55555", hometown= "Mersin")

Kodun çıktısı

Yukarıda görüldüğü gibi sınırsız parametreli fonksiyonlar, istediğiniz bilgileri ekleyerek yeni kullanıcı oluşturabilme şansı tanımaktadır.

Fonksiyonlarda Return

Return ifadesi fonksiyonlarda değer döndürmemizi sağlar. Fonksiyonlardan elde eldilen sonuçların başka yerlerde kullanılmasını sağlarlar.

Return, fonksiyonun işlemi bittikten sonra değer döndürmesini sağlar. Örneğin belirlenen parametreler ve return ifadesiyle toplama işlemi yaptırmaya çalışalım.

def toplama(a,b,c,d):
    print("toplama=")
    return a+b+c+d
toplama(400,400,400,400)    

Kodun çıktısı

Kodun çıktısında görüldüğü üzere returnde yapılan işlemin sonucunda 4 tane 400’ün toplamı 1600 bulunmuştur.

Son olarak bir sayının bölenlerini bulmayı hem return ile hem de parametreli fonksiyon kullanarak oluşturmaya çalışalım.

Öncelikle algoritmasını kurmaya çalışalım

  • Kullanıcıdan sayı al.
  • Tam bölenleri bulmak için oluşturulan fonksiyonu çağır.
  • Parametreli fonksiyon oluştur.
  • Boş bir bölen listesi tanımla.
  • 1’den kullanıcıdan alınan sayının 1 fazlasına kadar aralık al. Bu aralıkta bulunan sayıları i’ye böl.
  • Eğer kalan 0 çıkarsa bölen listesine ekleme yap. Sayının 1 fazlasına kadar devam ettir.
  • İşlemden çıkış yapmak için X’e bas.
def bolen_bulma(number):
    liste_bolen= []
    for i in range(1,number+1):
        if (number % i == 0):
            liste_bolen.append(i)
    return liste_bolen

while True:
    number = input("Sayı:")
    if (number == "X"):
        print("SON")
        break
    else:
        number = int(number)
        print(bolen_bulma(number))

Kodun çıktısı

Bir Cevap Yazın