Python’da İç İçe Döngüler ve Fonksiyonlar

Python’da iç içe döngüler ve fonksiyonlar, karmaşık işlemleri gerçekleştirmek ve kodun modülerliğini artırmak için kullanılır. İç içe döngüler, bir döngünün içinde başka bir döngü çalıştırmayı sağlar. İç içe fonksiyonlar ise, bir fonksiyonun içinde başka bir fonksiyon tanımlamayı ve kullanmayı mümkün kılar.

1. İç İçe Döngüler

İç içe döngüler, bir döngü yapısının içinde başka bir döngü çalıştırmak anlamına gelir. Bu, özellikle iki boyutlu veri yapıları (örneğin matrisler, tablolar) üzerinde işlem yapmak için kullanışlıdır.

a. İç İçe for Döngüleri

İç içe for döngüleri, genellikle iki boyutlu listeler veya matrisler üzerinde iterasyon yapmak için kullanılır.

Örnek: 2×3 Matrisin Elemanlarını Yazdırma
matris = [
[1, 2, 3],
[4, 5, 6]
]

for satir in matris:
for eleman in satir:
print(eleman, end=" ")
print() # Her satırdan sonra yeni bir satıra geçmek için


Çıktı:



1 2 3
4 5 6

Bu örnekte, dış döngü her satırda iterasyon yaparken, iç döngü bu satırdaki elemanlar üzerinde iterasyon yapar.

b. İç İçe while Döngüleri

İç içe while döngüleri, belirli bir koşul doğru olduğu sürece iç içe döngüleri çalıştırır.

Örnek: Bir Üçgen Deseni Oluşturma

n = 5
i = 1

while i <= n:
j = 1
while j <= i:
print("*", end="")
j += 1
print()
i += 1


Çıktı:



*
**
***
****
*****

Bu örnekte, dış döngü her satırı temsil ederken, iç döngü o satırda kaç tane yıldız (*) yazdırılacağını kontrol eder.

2. İç İçe Fonksiyonlar

İç içe fonksiyonlar, bir fonksiyonun içinde başka bir fonksiyon tanımlama işlemidir. Bu, genellikle bir fonksiyonun kapsama alanını sınırlamak veya kapanış (closure) oluşturmak için kullanılır.

a. Temel İç İçe Fonksiyon Tanımlama

İç içe fonksiyonlar, dış fonksiyonun bir parçası olarak tanımlanır ve genellikle dış fonksiyonun içinde çağrılır.

Örnek: İç İçe Fonksiyon Kullanımı
def dis_fonksiyon():
print("Dış fonksiyon çalıştı.")

def ic_fonksiyon():
print("İç fonksiyon çalıştı.")

ic_fonksiyon()

dis_fonksiyon()


Çıktı:



Dış fonksiyon çalıştı.
İç fonksiyon çalıştı.

Bu örnekte, ic_fonksiyon sadece dis_fonksiyon içinde tanımlanır ve dış fonksiyon çalıştığında çağrılır.

b. Kapanışlar (Closures)

Kapanışlar, bir iç fonksiyonun, dış fonksiyonun kapsamındaki değişkenlere erişimi olduğu ve bu erişimin dış fonksiyon sona erdikten sonra da sürdüğü durumlardır.

Örnek: Kapanış Oluşturma
def dis_fonksiyon(sayi):
def ic_fonksiyon():
return sayi ** 2
return ic_fonksiyon

kare_fonksiyonu = dis_fonksiyon(4)
print(kare_fonksiyonu()) # 16 yazdırır

Bu örnekte, ic_fonksiyon, dis_fonksiyon tarafından döndürülür ve sayi değişkenine hala erişim sağlar.

c. İç İçe Fonksiyonlarla Durum Yönetimi

İç içe fonksiyonlar, özellikle belirli bir durumu yönetmek için faydalıdır. Dış fonksiyon, durumu tanımlar ve iç fonksiyonlar bu durumu kullanır.

Örnek: Fonksiyon Sayacı
def sayici():
sayi = 0

def artir():
nonlocal sayi
sayi += 1
return sayi

return artir

say = sayici()

print(say()) # 1
print(say()) # 2
print(say()) # 3

Bu örnekte, sayici fonksiyonu bir sayaç oluşturur ve bu sayaç her çağrıldığında 1 artırılır. nonlocal anahtar kelimesi, iç fonksiyonun dış fonksiyonun yerel değişkenine erişimini sağlar.

İç içe döngüler ve fonksiyonlar, Python’da daha karmaşık veri işleme ve fonksiyonel yapıların oluşturulmasına olanak tanır. İç içe döngüler, çok boyutlu veri yapıları üzerinde işlem yapmak için kullanılırken, iç içe fonksiyonlar, kapsama alanını yönetmek ve kapanışlar oluşturmak için kullanılır. Bu yapıların doğru bir şekilde kullanılması, kodunuzu daha modüler, okunabilir ve sürdürülebilir hale getirir.

For ve While Döngüleri

Python’da Fonksiyonlar

Lambda Fonksiyonları

Comments

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.