Python’da Değişkenler ve Fonksiyonlar
Python programlama dilinde değişkenler, veri depolamak için kullandığımız isimlendirilmiş bellek alanlarıdır. Değişkenleri kullanarak farklı türde verileri, sayı, metin veya karmaşık yapılar olarak saklayabiliriz. Fonksiyonlar ise belirli bir işlemi gerçekleştiren kod bloklarıdır. Programınızdaki belirli görevleri birbirinden ayırarak kodunuzu daha düzenli ve okunabilir hale getirmenizi sağlar. Fonksiyonlar, tanımlandıkları yerin dışında çağrıldıklarında çalışır ve gerektiği durumlarda parametre alarak değişkenlerle etkileşime geçebilirler.
Bu yazıda, Python’da fonksiyonlarda değişken kullanmanın temel yönlerini keşfedeceğiz. Öncelikle bir fonksiyonu nasıl tanımlayacağımızı ve içine değişken alarak nasıl çalıştıracağımızı öğreneceğiz. Ayrıca yerel (local) ve küresel (global) değişkenlerin farklarına ve hangi durumlarda tercih edilmeleri gerektiğine de değineceğiz.
Fonksiyon Tanımlama ve Parametre Kullanımı
Bir fonksiyon tanımlamak için def
anahtar kelimesini kullanırız. Ardından fonksiyonun adını ve gerekli parametrelerin listesine koyarız. İşte basit bir fonksiyon tanımı:
def toplama(a, b):
return a + b
Yukarıda tanımlanan toplama
fonksiyonu, iki sayıyı (a ve b) parametre olarak alır ve bu sayıları toplar. Bu fonksiyonu kullanarak iki sayıyı toplamak çok basittir. Örneğin:
sonuc = toplama(5, 10)
print(sonuc) # Çıktı: 15
Bu örnekte, 5
ve 10
değerlerini fonksiyona gönderiyoruz ve bu değerler fonksiyonun içinde a
ve b
değişkenlerine atanıyor. Fonksiyon çalıştığında, bu değişkenler kullanılarak işlem yapılıyor.
Yerel ve Küresel Değişkenler
Pythonda değişkenlerin kapsamı (scope) çok önemlidir. Değişkenler, tanımlandıkları yerdeki kapsamı belirler. Eğer bir değişken sadece bir fonksiyonun içinde tanımlanmışsa, bu değişkene o fonksiyonun dışından erişilemez. Bu tür değişkenler yerel değişkenlerdir. Örneğin:
def ornek_fonksiyon():
yerel_deg = 10
return yerel_deg
print(ornek_fonksiyon()) # Çıktı: 10
#print(yerel_deg) # Hata: 'yerel_deg' tanımlı değil
Yukarıdaki örnek, yerel_deg
değişkeninin yalnızca ornek_fonksiyon
içinde erişilebileceğini gösteriyor. Ancak dışarıdan erişmeye çalıştığımızda hata alırız.
Küresel değişkenler ise programın herhangi bir yerinde erişilebilen değişkenlerdir. Bir değişkeni küresel olarak tanımlamak için, anahtar kelimeyle tanımlandıktan sonra bir değişkene değer atayarak oluşturabiliriz:
global_deg = 20
def baska_fonksiyon():
return global_deg
print(baska_fonksiyon()) # Çıktı: 20
Bu örnekte global_deg
değişkeni, fonksiyonların dışındaki alanda tanımlandığı için, baska_fonksiyon
içinde kullanılabiliyor.
Fonksiyonlara Değişken Göndermek
Fonksiyonlar sadece sayısal veya metin değerlerini değil, aynı zamanda listeleri, sözlükleri ve birçok farklı veri yapısını da parametre olarak alabilirler. Örneğin, bir listeyi fonksiyona gönderip elemanların toplanmasını istemek mümkündür:
def liste_toplama(liste):
toplam = 0
for num in liste:
toplam += num
return toplam
sayilar = [1, 2, 3, 4, 5]
print(liste_toplama(sayilar)) # Çıktı: 15
Burada, liste_toplama
fonksiyonu bir liste alır ve bu listedeki tüm sayıları toplar. Görüldüğü gibi, fonksiyonlar daha karmaşık veri yapıları ile çalışabilir ve üzerinde işlemler yapabilir.
Değişkenlerin Default Değerleri
Fonksiyon tanımlarında, parametrelerin varsayılan değerlerini belirlemek de mümkündür. Böylece kullanıcı parametre girmezse otomatik olarak bu varsayılan değer kullanılabilir. Aşağıdaki gibi bir örnek verelim:
def merhaba(isim='Misafir'):
return f'Merhaba, {isim}!'
print(merhaba()) # Çıktı: Merhaba, Misafir!
print(merhaba('Ege')) # Çıktı: Merhaba, Ege!
Bu örnekte, merhaba
fonksiyonu bir isim parametresi alır; eğer isim verilmezse varsayılan olarak 'Misafir'
kullanılacaktır. Bu özellik, fonksiyon kullanımını daha esnek hale getirir.
Fonksiyonlarda Varlıkların İyileştirilmesi
Fonksiyonlar, değişkenleri işlemek için döngüler, koşul ifadeleri ve hatalı verileri kontrol eden yapıların kombinasyonlarını kullanabilir. Bu da afaki hataların ve yanlış girilen verilerin önüne geçebilir. Örneğin, bir sayı kontrol fonksiyonu yazarak sadece pozitif sayıları kabul ettiğimize dair bir kontrol yapalım:
def kontrol_et(sayi):
if sayi < 0:
return 'Lütfen pozitif bir sayı girin.'
return sayi * 2
print(kontrol_et(5)) # Çıktı: 10
print(kontrol_et(-3)) # Çıktı: Lütfen pozitif bir sayı girin.
Bu örnekte, kullanıcı negatif bir sayı girdiğinde bir hata mesajı döndürülür. Böylece programın çalışması sırasında kullanıcıyı yönlendirmiş oluyoruz.
Sonuç
Python'da fonksiyonlarda değişken kullanmak, hem kodunuzun işlevselliğini artırmakta hem de kodunuzu daha düzenli hale getirmektedir. Değişkenleri etkili bir şekilde kullanarak fonksiyonlarınızda daha karmaşık ve güçlü yapılar oluşturabilir, daha okunabilir bir kod yazma olanağına sahip olabilirsiniz. Özellikle yerel ve küresel değişkenlerin anlayışı, proje geliştiren programcılar için büyük bir avantaj sağlamakta. Unutmayın, kod yazarken değişkenlerin kapsamını ve etkileşimlerini iyi kontrol etmek, yazılımınızın kalitesi için kritik önem taşır.
Artık Python fonksiyonlarınızda değişkenleri nasıl kullanacağınızı daha iyi anlamış oldunuz. Kendi projelerinizi geliştirirken bu bilgileri uygulayarak, daha etkili ve düzenli bir kod yazma sürecine adım atabilirsiniz.