logo
15 ARALIK 2025


Python 110 - Fonksiyonlar

29.03.2021 00:00:00

Programlamada fonksiyonlar, bir dizi işlemi bir çırpıda yapmak için kullanılan yapılardır. Şu ana kadar kullandığımız print() ve str() komutları da aslında birer fonksiyondur. Bir fonksiyon kullanmak istediğimizde adını yazar parantez açar, bazen bu parantez içinde bir ya da daha fazla değer yazar ve parantezi kapatırız.

Hazır fonksiyonlar temel işlerimizi görse de her işimizi onlarla çözemeyiz. Yazacağımız programların ihtiyacına göre kendimiz de yeni fonksiyonlar oluşturup kullanabiliriz.

Bir Python programında yeni bir fonksiyon oluşturmak için satıra def kelimesiyle başlar, bir boşluk bırakıp fonksiyonun tamamen bize ait olan ismini yazar, parantezlerini açıp kapar, ve iki nokta üstüsteyle satırı bitiririz. Def, "tanım" anlamına gelen define (difayn) kelimesinin kısaltmasıdır. Bundan sonra fonksiyonumuzda yer alan tüm komutları def kelimesinden 2 boşluk içeride yazmamız gerekir. Hatırlayın Pythonda bu şekilde biraz içeride yazılan kodlarda bir birliktelik anlamı vardı. Buna kod bloğu da diyebiliriz. İşte 2 komutlu bir kod bloğuyla ilk fonksiyon tanımımız karşınızda:

  def karşıla():
    print("Merhaba!")
    print("Nasılsınız?")

Bu tanımı yaptıktan sonra artık kodumuz içerisinde istediğimiz herhangi bir yerde karşıla() dediğimizde, Python tanım bloğunda ne kadar kod yazdıysak hepsini çalıştıracaktır.

Nasıl ki print() komutunda parantez içinde bazı değerler yazabiliyorduysak, kendi fonksiyonlarımıza da bu tür parametreler atayabiliyoruz. Yani her zaman parantez boş kalmak zorunda değil:

  def karşıla(isim):
    print("Merhaba " + isim)

  karşıla("Samet")   # Merhaba Samet

Burada "Samet" kelimesini isim değişkeni yardımıyla fonksiyona gönderiyoruz, fonksiyon orada sabit bir Merhaba kelimesinin peşine bu ismi yapıştırıp ekrana basıyor. Fonksiyon tanımımızda istediğimiz kadar parametre kullanabiliriz ve bunlar istediğimiz türde değişkenler/ veriler olabilir. Yani 5 tane sayı alan bir fonksiyon da oluşturabiliriz, tek bir cümle alan bir fonksiyon da oluşturabiliriz.

Bazen bir fonksiyonun tıpkı matematikte olduğu gibi gönderdiğimiz değer/lerden yeni bir değer üretmesini yahut bize geri vermesini de isteyebiliriz. Bunu return kelimesiyle yapıyoruz. Geri gelen, geri döndür anlamlarındaki return kelimesini (ritörn) diye okuyabiliriz.

  def hipotenüs(a,b):
    h = a*a + b*b
    return h ** 0.5  # değer döndüren kısım

  print( hiptenüs(3,4) )

Bir önceki örnekle aradaki farka dikkat edin. Önceki örnek ekrana yazma işini de fonksiyonda yapıyordu ama burada biz fonksiyondan sadece bir değer alıyoruz ve onu ekrana biz basıyoruz. İstersek ekrana basmaz, başka bir değişkende de saklayabilirdik.

Bir fonksiyondan birden fazla sonuç almayı da yine return ifadesiyle yapıyoruz ama returnden sonra tekil bir veri değil liste tipinde bir veri kullanıyoruz:

  def kelimeler(cümle):
    return cümle.split()

  print( kelimeler("Mevsim bahara döndü.") )  # ['Mevsim', 'bahara', 'döndü.']

Bir çıkış koşulu sağlayabildiğiniz her durumda bir fonksiyonun kendisini çağırması da mümkündür. Matematikte ve programcılıkta bazı çözümler bu tür rekursif (resursive) algoritmalarla çok daha pratik olarak sonuçlandırılabilir.

  def faktöryel(x):
    if x==1:
      return 1
    else:
      return ( x * faktöryel(x-1) )

  print( faktöryel(5) )   # 120

Evet yine temel bir konuda karşılaşabileceğiniz tüm alanları ele almaya çalıştık. Online Python denemelerimizi ihmal etmeyelim. İyi çalışmalar.

Yorumlar
Yorum bulunmuyor.
Yorumlarınızı paylaşın

--
 
Nahit Taşpınar / diğer yazıları
On binlerce kişi, yargıdaki usulsüzlükleri protesto etti
'Sizi görüyoruz, bağımsızlık, itaat değil'
Su seviyesi hiç bu kadar düşmemişti
Sapanca Gölü alarm veriyor
Gülşah Durmay son yolculuğuna uğurlandı
Gözyaşları sel oldu
İşte ülkemizin getirildiği vahim nokta!
İstanbul'da bir ayda yakalanan 1 ton 144 kilo uyuşturucu sergilendi
Nedir bu barış yasası?
DEM'den 'acilen barış yasası' çağrısı
37 yaşındaki belediye başkanı Gülşah Durbay hayatını kaybetti
Özgür Özel duygularına hakim olamadı
2025'in 11 aylık otomotiv sanayi verileri açıklandı
İhracat yüzde 5 arttı
Şili'de devlet başkanı seçimi sonuçlandı
16 puan farkla aşırı sağın adayı kazandı
İsrail, Batı Şeria'da yıkıma devam ediyor
Nur Şems Mülteci Kampında 25 binayı daha yıkma kararı aldı
Trabzon'da müthiş maç
Trabzonspor: 3 - Beşiktaş: 3
Türkiye’yi derin üzüntüye boğan kayıp
Şehzadeler Belediye Başkanı Gülşah Durbay vefat etti
'CAATSA ve Halkbank davası hariç..'
'Geri kalan alanlarda çok iyiyiz'
ABD'nin Brown Üniversitesinde silahlı saldırı
2 kişi öldü, 8 kişi yaralandı
İsrail'den Hamas'ın üst düzey komutanına hava saldırısı
Raad Saad'ın hedef aldığı saldırıda 4 ölü, 25 yaralı
Suriye'de yeni oyun mu? Pentagon: 'DEAŞ, 2 askerimizi öldürdü'
Suriye İçişleri Bakanlığı: 'Uyarımız dikkate alınmamıştı'
On binlerce kişi, yargıdaki usulsüzlükleri protesto etti
'Sizi görüyoruz, bağımsızlık, itaat değil'
Su seviyesi hiç bu kadar düşmemişti
Sapanca Gölü alarm veriyor
Gülşah Durmay son yolculuğuna uğurlandı
Gözyaşları sel oldu
İşte ülkemizin getirildiği vahim nokta!
İstanbul'da bir ayda yakalanan 1 ton 144 kilo uyuşturucu sergilendi
Nedir bu barış yasası?
DEM'den 'acilen barış yasası' çağrısı
37 yaşındaki belediye başkanı Gülşah Durbay hayatını kaybetti
Özgür Özel duygularına hakim olamadı
2025'in 11 aylık otomotiv sanayi verileri açıklandı
İhracat yüzde 5 arttı
Şili'de devlet başkanı seçimi sonuçlandı
16 puan farkla aşırı sağın adayı kazandı
İsrail, Batı Şeria'da yıkıma devam ediyor
Nur Şems Mülteci Kampında 25 binayı daha yıkma kararı aldı
Trabzon'da müthiş maç
Trabzonspor: 3 - Beşiktaş: 3
Türkiye’yi derin üzüntüye boğan kayıp
Şehzadeler Belediye Başkanı Gülşah Durbay vefat etti
'CAATSA ve Halkbank davası hariç..'
'Geri kalan alanlarda çok iyiyiz'
ABD'nin Brown Üniversitesinde silahlı saldırı
2 kişi öldü, 8 kişi yaralandı
İsrail'den Hamas'ın üst düzey komutanına hava saldırısı
Raad Saad'ın hedef aldığı saldırıda 4 ölü, 25 yaralı
Suriye'de yeni oyun mu? Pentagon: 'DEAŞ, 2 askerimizi öldürdü'
Suriye İçişleri Bakanlığı: 'Uyarımız dikkate alınmamıştı'
logo

Beşyol Mah. 502. Sok. No: 6/1
Küçükçekmece / İstanbul

Telefon: (212) 624 09 99
E-posta: internet@yenimesaj.com.tr gundogdu@yenimesaj.com.tr


WhatsApp iletişim: (542) 289 52 85


Tüm hakları Yeni Mesaj adına saklıdır: ©1996-2025

Yazılı izin alınmaksızın site içeriğinin fiziki veya elektronik ortamda kopyalanması, çoğaltılması, dağıtılması veya yeniden yayınlanması aksi belirtilmediği sürece yasal yükümlülük altına sokabilir. Daha fazla bilgi almak için telefon veya eposta ile irtibata geçilebilir. Yeni Mesaj Gazetesi'nde yer alan köşe yazıları sebebi ile ortaya çıkabilecek herhangi bir hukuksal, ekonomik, etik sorumluluk ilgili köşe yazarına ait olup Yeni Mesaj Gazetesi herhangi bir yükümlülük kabul etmez. Sözleşmesiz yazar, muhabir ve temsilcilere telif ödemesi yapılmaz.