3- Python’da Fonksiyonlar

Elvan Uzun
4 min readJun 6, 2022

--

Merhaba, ben Elvan. SistersLab’in Toplum Gönüllüleri Vakfı (link:https://www.tog.org.tr/en/) tarafından desteklenen Women in Tech Academy proje katılımcılarından biriyim. Proje, 20–28 yaş aralığındaki 25 kadını 3 ay boyunca yazılım eğitimleriyle güçlendirerek sektörde iş gücüne katılımını hedefliyor.

Projeyle ilgili daha fazla bilgiye bu linkten ulaşabilirsiniz: https://sisterslab.co/women-in-tech-academy/

Bugün Python’da fonksiyonları öğreneceğiz. Keyifli okumalar dilerim.

  • Fonksiyon, önceden tanımlanan, programda tekrar tekrar kullanabileceğimiz ve istenen yerde çağırabileceğimiz yapılardır.
  • Girdi alıp , dışarıya çıktı gönderebilirler.
  • Fonksiyonları oluşturmak için “def” anahtar kelimesini kullanılır ve sonrasında fonksiyonun ismi tanımlanır. Sonra da yapılacak işlemler alt alta bir tab kadar boşluk bırakarak yazılır.

Fonksiyonlar parametresiz ve parametre alan fonksiyonlar olmak üzere iki ayrılır:

1- Parametresiz Fonksiyonlar

Herhangi bir parametre almayan fonksiyonlardır.

def say_hello():
print(“Hello World!”)
say_hello()Output:
Hello World!

2- Parametre Alan Fonksiyonlar

Parantez içerisine bir değişken yazdığımız fonksiyonlardır.

def say_hello(name):
print(“Hello”, name)
say_hello(“Elvan”)

name değişkenine parantez içerisinde default bir değişken de verebiliriz. Fonksiyonu çağırdığımız yerde parantez içerisine bir şey yazmazsak default değeri kullanmış oluruz.

def say_hello(name = “Berk”):
print(“Hello”, name)
say_hello()
say_hello(“Burak”)
Output:
Hello Berk
Hello Burak

Return Deyimi

Return, fonksiyonun geriye bir değer döndürmesini sağlar.

def sum(num1,num2):
return num1 + num2
sum(15,25)

return ile birden fazla değer de döndürebiliriz.

def calculator(num1, num2):
add = num1 + num2
sub = num1 — num2
mult = num1 * num2
division = num1 / num2
return add, sub, mult, division #birden fazla geri dönüş
a, b, c, d = calculator(10,2) #çoklu atamaprint(“Toplama:”, a)
print(“Çıkarma: “, b)
print(“Çarpma:”, c)
print(“Bölme:”, d)
Output:
Toplama: 12
Çıkarma: 8
Çarpma: 20
Bölme: 5.0

Peki çok fazla argüman girilme durumu varsa veya kullanıcının isteğine göre argüman girme durumu olursa ne yaparız?

“ *args ” kullanımından faydalanırız. Args kelimesi değişkenlik gösterebilir.

Örneğin:

def add(*numbers):
total = 0
for i in numbers:
total += i
print(“Toplam:”, total)
add()
add(48,9) #2 parametreli
add(10,5,37,14,60) #5 parametreli
Output:
Toplam: 0
Toplam: 57
Toplam: 126

numbers kullanımı ile istediğimiz kadar parametre girebiliriz. Ve bu parametreler ile farklı işlemler yapabiliriz. Yukarıdaki örnekte girilen parametreler için toplama işlemi yaptık ve gelen her sayıya total’e eklemiş olduk.

Son olarak şöyle bir örnek yapalım:

Kullanıcıdan 2 sayı girmesini isteyelim. Bu iki sayı arasındaki çift sayıları ekrana yazdıralım ve sonra da ortalamayı hesaplayalım.

num1 = int(input(“İlk sayıyı giriniz: “))
num2 = int(input(“İkinci sayıyı giriniz: “))
def is_even(num):
if num % 2 == 0: #gelen sayının çift olup olmadığını kontrol ediyoruz.
return True
return False
total = 0
count = 0
for i in range(num1, num2 + 1):
if is_even(i):
total += i
count += 1
print(i)
print(“Ortalama: “, total/count)

Not: Bu örnek için sayılar 10 ve 20 olarak belirlendi. 10 ile 20 arasındaki çift sayıları ekrana yazdırmış olduk ve ortalamalarını 15 olarak bulmuş olduk.

Lambda Fonksiyonu, Map ve Filter Kullanımı

Python’da isimsiz olarak tanımlanan fonksiyonlara lambda fonksiyonları denir.

İlk olarak aldığı değerin iki katını döndüren normal bir fonksiyon tanımlayalım.

def double(x):
return x*2
print(double(10))

Şimdi de aynı işlemi lambda fonksiyon olarak yazalım.

double = lambda x: x * 2print(double(10))
  • Lambda fonksiyonlar default değerler alabilir.

Aşağıdaki örnekte x’e default olarak 2 değerini atadık.

double = lambda x = 2: x * 2print(double())
print(double(10))

Lambda fonksiyonlar ile ilgili birkaç örnek daha inceleyelim.

my_list = [1, 2, 3, 4]new_list = lambda x: (i * 10 for i in x) #liste elemanlarını 10 ile çarparak yazdırmak istiyoruz.print(list(new_list(my_list)))Output:
[10, 20, 30, 40]

İç içe listelerdeki elemanları sıralayacağımız bir soru çözelim:

my_list = [[2, 6, 8, 1], [7, 5, 4, 3]]sort_list = lambda x: (sorted(i) for i in x) #sorted metodu ile elemanları sıralamış oluruz.print(list(sort_list(my_list)))Output:
[[1, 2, 6, 8]
[3, 4, 5, 7]]

Filter() kullanımı

Filter fonksiyonlarını istediğimiz kriterleri sağlayan elemanlar üzerine işlem yapmak için kullanırız. Yani adından da anlaşılacağı gibi filtreleme yapan fonksiyondur.

Örneğin bir liste içerisinde yer alan sayılardan tek sayı olanları ekrana basalım.

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
new_list = list(filter(lambda x: x % 2 != 0, my_list))
print(new_list)

Map() kullanımı

Bir fonksiyona, elimizdeki datanın elemanlarını sırasıyla gönderir ve sonucu tek bir obje olarak geri döner. Filtreleme yapmaz.

Yukarıda örneği bu sefer map fonksiyonu ile yapmayı deneyelim.

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

new_list = list(map(lambda x: x % 2 != 0, my_list)) #karar yapılarında True- False döndürür.

print(new_list)

Şimdi de gelin iç içe listelerde map kullanımı ile ilgili bir örnek yapalım.

Listemizin elemanları yine listelerden oluşsun ve her listenin ilk elemanını 3 ile çarparak yazdıralım.

A = [[1, 2], [3, 4], [5, 6]]

new_list = list(map(lambda x: x[0] * 3, A))

print(new_list)

Son olarak da içinde farklı veri tipleri bulunan bir liste tanımlayalım ve bu liste içerisinde int tipindeki elemanları yazdıralım.

my_list = ["python", 20, 10, True, 30, "n"]

new_list = filter(lambda x: type(x) == int, my_list)

print(list(new_list))

Herkese keyifli bir gün diliyorum, bir sonraki yazıda görüşmek üzere.

--

--