Ana sayfa > Programlama > Python Programlama > Döngüler

Döngüler

► Detaylı anlatım

Döngüler

Python'da, tek bir işlem satırını veya kod bloğunu bir defadan fazla çalıştırmak için tekrar yazmak yerine, döngü kavramını kullanabiliriz. Bir veya birden fazla işlem satırını, bir koşula bağlı olarak, belirli sayıda veya bir koşul sağlandığı sürece tekrarlayarak çalıştıran kalıplara döngü adı verilir.

Döngüleri kullanarak liste, tuple, küme, sözlük veya bir karakter dizisinin elemanlarına birer birer erişim sağlayabiliriz.

Python'da, for ve while olmak üzere 2 farklı döngü kullanılmaktadır.

Bir döngü yapısında döngü içinde yer alan işlem satırları for veya while döngü satırının başlangıç sütunundan en az bir karakter ileriden başlamalıdır.

for döngüsü

for değişken-adı in işlem-yapılacak-dizi-adı: 
      işlem-satırı
      .
      .

İşlem-yapılacak-dizi-adı, bir liste, tuple, küme, sözlük veya karakter dizisi olabilir.

Şimdi, for döngüsünün listelerle kullanılmasını bir örnek üzerinde incelemeye çalışalım:


liste = ["aaa", "bbb", "ccc", "ddd"]

# Liste elemanlarını for döngüsüyle tek tek yazdırma
for deg in liste:
    print(deg, end=' ')
	
print() # Satır aralığı verme	

# Liste elemanlarını for döngüsü ve endeksleme yöntemiyle yazdırma	
len = len(liste)
for deg in range(len):
    print(liste[deg], end=' ')

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

aaa bbb ccc ddd 
aaa bbb ccc ddd 

Şimdi, sözlük elemanlarına sıra ile erişim sağlamak için for döngüsü kullanılmasını bir örnek üzerinde incelemeye çalışalım:


sozluk = {
	1:"aaa",
	2:"bbb",
	3:"ccc",
	4:"ddd",
	5:"eee"
} 

print(sozluk) # Sözlüğü tek komutla yazdırma

# Sözlük anahtar değerlerini for döngüsüyle tek tek yazdırma
for deg in sozluk:
    print(deg, end=' ')
	
print()	# satır aralığı

# Sözlük değerlerini for döngüsüyle tek tek yazdırma
for deg in sozluk:
    print(sozluk[deg], end=' ') 

print()	# satır aralığı
	
# Sözlük anahtar değerlerini for döngüsüyle tek tek yazdırma
for deg in sozluk.keys():
    print(deg, end=' ') 

print()	# satır aralığı
	
# Sözlük değerlerini for döngüsüyle tek tek yazdırma
for deg in sozluk.values():
    print(deg, end=' ') 

print()	# satır aralığı
	
# Sözlük anahtar ve değerlerini for döngüsüyle tek tek yazdırma
for deg1, deg2 in sozluk.items():
    print(deg1, deg2, end=' ') 

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

{1: 'aaa', 2: 'bbb', 3: 'ccc', 4: 'ddd', 5: 'eee'}
1 2 3 4 5 
aaa bbb ccc ddd eee 
1 2 3 4 5 
aaa bbb ccc ddd eee 
1 aaa 2 bbb 3 ccc 4 ddd 5 eee 

Şimdi, for döngüsünün karakter dizileriyle kullanılmasını bir örnek üzerinde incelemeye çalışalım:


dizi = "Bilgisayar"

# Diziyi tek komutla yazdırma
print(dizi)

# Karakter dizisindeki karakterleri for döngüsüyle tek tek yazdırma
for deg in dizi:
    print(deg, end='')	

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

Bilgisayar
Bilgisayar

Şimdi, for döngüsünün range veri türü ile kullanılmasını bir örnek üzerinde incelemeye çalışalım:


# range(başlangıç sayısı, son sayı, aralık)
# Başlangıç sayısı (ön tanımlı 0) ve aralık değerinin (ön tanımlı 1) tanımlanması isteğe bağlıdır.  

ran = range(4, 12) # Aralık değeri 1
print("Range içinde yer alan sayılar: ", end=': ')
for deg in ran:
    print(deg, end=' ')

print()

ran = range(-5, 12, 3) # Aralık değeri 3
print("Range içinde yer alan sayılar: ", end=': ')
for deg in ran:
    print(deg, end=' ')

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

Range içinde yer alan sayılar: : 4 5 6 7 8 9 10 11 
Range içinde yer alan sayılar: : -5 -2 1 4 7 10 

while döngüsü

değişken-adı
while değişken-adı karşılaştırma-işlemi: 
      işlem-satırı
      .
      .
	  değişken-artırma-azaltma	  

İşlem-yapılacak-dizi-adı, bir liste, tuple, küme, sözlük veya karakter dizisi olabilir.

Şimdi, for döngüsünün listelerle kullanılmasını bir örnek üzerinde incelemeye çalışalım:


liste = ["aaa", "bbb", "ccc", "ddd"]

# Liste elemanlarını while döngüsü ve endeksleme yöntemiyle yazdırma	  
len = len(liste)
deg = 0
while deg<len:
  print(liste[deg], end=' ')
  deg += 1  

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

aaa bbb ccc ddd 

Şimdi, sözlük elemanlarına sıra ile erişim sağlamak için while döngüsü kullanılmasını bir örnek üzerinde incelemeye çalışalım:


sozluk = {
	1:"aaa",
	2:"bbb",
	3:"ccc",
	4:"ddd",
	5:"eee"
} 

print(sozluk) # Sözlüğü tek komutla yazdırma

len = len(sozluk)

# Sözlük anahtar değerlerini while döngüsüyle tek tek yazdırma
keys = list(sozluk)
deg = 0
while deg<len:
  print(keys[deg], end=' ')
  deg += 1  

print()	# satır aralığı
  
# Sözlük değerlerini while döngüsüyle tek tek yazdırma
values = list(sozluk.values())
deg = 0
while deg<len:
  print(values[deg], end=' ')
  deg += 1   

print()	# satır aralığı
  
# Sözlük anahtar ve değerlerini while döngüsüyle tek tek yazdırma
items = list(sozluk.items())
deg = 0
while deg<len:
  print(items[deg], end=' ')
  deg += 1    

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

{1: 'aaa', 2: 'bbb', 3: 'ccc', 4: 'ddd', 5: 'eee'}
1 2 3 4 5 
aaa bbb ccc ddd eee 
(1, 'aaa') (2, 'bbb') (3, 'ccc') (4, 'ddd') (5, 'eee')  

Şimdi, while döngüsünün karakter dizileriyle kullanılmasını bir örnek üzerinde incelemeye çalışalım:


dizi = "Bilgisayar"

# Karakter dizisindeki karakterleri while döngüsü ve endeksleme yöntemiyle yazdırma	  
len = len(dizi)
deg = 0
while deg < len:
  print(dizi[deg], end='')
  deg += 1  	

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

Bilgisayar

Şimdi, while döngüsünün range veri türü ile kullanılmasını bir örnek üzerinde incelemeye çalışalım:


# range(başlangıç sayısı, son sayı, aralık)
# Başlangıç sayısı (ön tanımlı 0) ve aralık değerinin (ön tanımlı 1) tanımlanması isteğe bağlıdır.  

ran = range(7, 15) # Aralık değeri 1
print("Range içinde yer alan sayılar: ", end=': ')
deg = 0
while deg < len(ran):
  print(ran[deg], end=' ')
  deg += 1	
	
print()

ran = range(-6, 18, 4) # Aralık değeri 4
print("Range içinde yer alan sayılar: ", end=': ')
deg = 0
while deg < len(ran):
  print(ran[deg], end=' ')
  deg += 1	

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

Range içinde yer alan sayılar: : 7 8 9 10 11 12 13 14 
Range içinde yer alan sayılar: : -6 -2 2 6 10 14