Python for döngüsü
Giriş
Python'da for döngüsü bir yineleyici işlevdir. Bir liste gibi bir dizin nesneniz varsa, listedeki öğelerin üzerinde yinelemek için for döngüsünü kullanabilirsiniz.
For döngüsünün işlevselliği, diğer birçok programlama dilinde gördüğünüzden çok farklı değildir.
Bu makalede, Python for döngüsünü ayrıntılı olarak inceleyeceğiz ve listeler, demetler ve daha fazlası dahil olmak üzere farklı dizinlerde yineleme yapmayı öğreneceğiz. Ayrıca, break ve continue ifadelerini kullanarak döngünün akışını kontrol etmeyi öğreneceğiz. Ne Zaman for Döngüsü Kullanılır?
Bir kod bloğunu belirli bir sayıda tekrarlamanız gerektiğinde kullanılır. Eğer kaç kez tekrarlanacağını bilmiyorsanız, bunun yerine "while döngüsü" ifadesini kullanın.
For döngüsü Python Sözdizimi
Python'daki for döngüsünün temel sözdizimi aşağıda belirtilenlere benzer bir yapıya sahiptir.
for itarator_variable in sequence_name:
Statements
. . .
Statements
Python for döngüsü Sözdiziminin Ayrıntıları
- İfadenin ilk kelimesi, for döngüsünün başlangıcını belirten "for" anahtar kelimesiyle başlar.
- Ardından dizide yineleyen ve döngü içinde çeşitli işlevleri gerçekleştirmek için kullanılabilecek yineleyici değişken gelir.
- Sonrasında, yineleyici değişkene dizin içindeki öğeler için döngü yapmasını söyleyen Python'daki "in" anahtar kelimesi bulunur.
- Ve son olarak, bir liste, bir demet veya başka herhangi bir yineleyici türü olabilen dizin değişkenimiz var.
- Döngünün statements kısmı, yineleyici değişken ile çeşitli işlemler yapabileceğiniz yerdir.
Bir for döngüsü kullanarak bir string'in harflerini tek tek yazdırın
Python stringi, karakterlerin bir dizisidir. Programlama uygulamalarınızdan herhangi birinde, bir stringin karakterlerinin üzerinden tek tek geçmeniz gerekiyorsa, burada for döngüsünü kullanabilirsiniz.
İşte bunun sizin için nasıl çalışacağı.
word = "anaconda"
for letter in word:
print(letter)
Çıktı:
a
n
a
c
o
n
d
a
Bu döngünün işe yaramasının nedeni, Python'un bir "string"i bir bütün olarak değil, bir karakter dizisi olarak kabul etmesidir.
Python listesi veya demeti üzerinde yineleme yapmak için for döngüsü kullanma
Listeler ve Demetler yinelenebilir (iterable) nesnelerdir. Şimdi bu nesneler içindeki öğelerin üzerinde nasıl döngü yapabileceğimize bakalım.
words = ["Apple", "Banana", "Car", "Dolphin"]
for word in words:
print(word)
Çıktı:
Apple
Banana
Car
Dolphin
Şimdi, bir demetin öğeleri üzerinde döngü yapmayı inceleyelim.
nums = (1, 2, 3, 4)
sum_nums = 0
for num in nums:
sum_nums = sum_nums + num
print(f'Sum of numbers is {sum_nums}')
# Çıktı
# Sum of numbers is 10
Python'da iç içe for döngüleri
Bir for döngüsünün başka bir for döngüsü içinde olduğu durum, iç içe for döngüsü olarak adlandırılır. İç içe for döngüsünün birçok kullanım alanı vardır.
Yukarıdaki liste örneğini düşünelim. For döngüsü listedeki tek tek kelimeleri yazdırır. Ancak, listedeki her bir kelimenin tek tek karakterlerini yazdırmak istersek ne olur?
İşte burada iç içe for döngüsü daha iyi çalışır. İlk döngü (ana döngü), kelimelerin üzerinden teker teker geçecektir. İkinci döngü (alt döngü) ise her bir kelimenin karakterleri üzerinde döngü yapacaktır.
words = ["Apple", "Banana", "Car", "Dolphin"]
for word in words:
# Bu döngü, listeden kelimeleri alıyor
print("The following lines will print each letter of " + word)
for letter in word:
# Bu döngü, kelimenin karakterlerini alıyor
print(letter)
print("") # Boş bir satır yazdırmak için kullanılıyor
Çıktı:
The following lines will print each letter of Apple
A
p
p
l
e
The following lines will print each letter of Banana
B
a
n
a
n
a
The following lines will print each letter of Car
C
a
r
The following lines will print each letter of Dolphin
D
o
l
p
h
i
n
>>>
İç içe döngüler, yapısal olarak iç içe if
ifadelerine benzer.
Python for döngüsü ve range() fonksiyonu
Python'da range
yerleşik fonksiyonlardan biridir. Eğer for döngüsünün belirli sayıda çalışmasını istiyorsanız veya belirli bir aralıktaki öğeleri yazdırmanız gerekiyorsa, range
fonksiyonu oldukça kullanışlıdır.
range()
ile çalışırken, 1 ila 3 arasında tamsayı argümanı geçebilirsiniz:
- start (başlangıç) dizinin başlayacağı tamsayı değeri belirtir. Eğer dahil edilmezse, başlangıç değeri 0 olur.
- stop (bitiş) her zaman gereklidir ve bu değere kadar sayılır (bu değer dahil edilmez).
- step (adım) bir sonraki yinelemede ne kadar artırılacağını (veya negatif sayılarda ne kadar azaltılacağını) belirtir. Eğer belirtilmezse, adım varsayılan olarak 1 olur.
Aşağıdaki örnekte, 1, 2 ve 3 sayısını yazdırmak istediğimiz bir durumu ele alalım:
for x in range(3):
print("Yazdırılıyor:", x)
#Çıktı
# Yazdırılıyor: 0
# Yazdırılıyor: 1
# Yazdırılıyor: 2
range
fonksiyonu ayrıca bir adım parametresi de alabilir. Bu, sayım sırasında kaç sayı atlayacağını belirtir.
Aşağıdaki örnekte, adım olarak 3 sayısını kullandım ve sonuçlar önceki sayıya 3 eklenerek elde edilmiştir:
for n in range(1, 10, 3):
print("Adımlı Yazdırma:", n)
# Çıktı
# Adımlı Yazdırma: 1
# Adımlı Yazdırma: 4
# Adımlı Yazdırma: 7
Ayrıca, adım
argümanı olarak negatif bir değer kullanarak geri doğru da yineleme yapabiliriz. Ancak bu durumda başlangıç
ve bitiş
argümanlarımızı buna göre ayarlamamız gerekir:
for i in range(100, 0, -10):
print(i)
Burada, 100 başlangıç
değeri, 0 bitiş
değeri ve -10
adım değeri olarak belirlenmiştir. Döngü 100’den başlayıp her yinelemede 10 azaltılarak 0’a kadar devam eder.
Çıktı
100
90
80
70
60
50
40
30
20
10
Python’da programlama yaparken, for
döngüleri genellikle yineleme için range()
dizisi türünü kullanır.
Break ifadesi ile for döngüsü
break
ifadesi, for döngüsünü beklenenden önce sonlandırmak için kullanılır. Belirli bir koşul karşılandığında döngüyü kırmak için kullanılır.
Bir sayı listesinin içinde belirli bir sayının olup olmadığını kontrol etmek istediğimizi varsayalım. Sayı listesi üzerinde döngü yapabiliriz ve sayı bulunduğunda, döngüde kalan elemanları yinelememize gerek olmadığı için döngüden çıkarız.
Bu durumda, Python if else
koşulunu for döngüsü ile birlikte kullanacağız.
sayilar = [1, 2, 3, 4, 5, 6]
n = 2
bulundu = False
for sayi in sayilar:
if n == sayi:
bulundu = True
break
print(f'Liste {n} içeriyor mu: {bulundu}')
# Çıktı
# Liste 2 içeriyor mu: True
Continue ifadesi ile for döngüsü
For döngüsü içinde continue
ifadelerini kullanarak belirli bir koşul için döngü gövdesinin çalışmasını atlayabiliriz.
Bir sayı listemiz olduğunu ve pozitif sayıların toplamını yazdırmak istediğimizi varsayalım. Negatif sayılar için for döngüsünü atlamak için continue
ifadelerini kullanabiliriz.
sayilar = [1, 2, -3, 4, -5, 6]
pozitif_toplam = 0
for sayi in sayilar:
if sayi < 0:
continue
pozitif_toplam += sayi
print(f'Pozitif Sayıların Toplamı: {pozitif_toplam}')
Python for döngüsü ile else bloğu
Python for döngüsü ile else bloğu kullanabiliriz. Else bloğu, yalnızca for döngüsü bir break ifadesi ile sonlandırılmadığında çalıştırılır.
Diyelim ki, tüm sayılar çift ise ve yalnızca bu durumda sayıların toplamını yazdıran bir fonksiyonumuz var.
Bir tek sayı varsa for döngüsünü sonlandırmak için break ifadesini kullanabiliriz. Toplamı yalnızca for döngüsü normal şekilde yürütüldüğünde yazdırılacak şekilde else bölümünde yazdırabiliriz.
def print_sum_even_nums(even_nums):
total = 0
for x in even_nums:
if x % 2 != 0:
break
total += x
else:
print("For loop executed normally")
print(f'Sum of numbers {total}')
# Bu toplamı yazdıracak
print_sum_even_nums([2, 4, 6, 8])
# Bu, dizide bir tek sayı olduğu için toplamı yazdırmayacak
print_sum_even_nums([2, 4, 5, 8])
# Çıktı
# For loop executed normally
# Sum of numbers 20
Sıralı Veri Türlerini Kullanarak For Döngüleri
Listeler ve diğer sıralı veri türleri de for
döngülerinde yineleme parametresi olarak kullanılabilir. range()
yerine bir liste tanımlayıp bu liste üzerinde yineleme yapabilirsiniz.
Bir listeyi bir değişkene atayacağız ve ardından liste üzerinde yineleme yapacağız:
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)
Bu durumda, listedeki her bir öğeyi yazdırıyoruz. Değişken olarak "shark" kullandık, ancak geçerli herhangi bir değişken adı kullanabilirdik ve aynı çıktıyı alırdık:
Çıktı
hammerhead
great white
dogfish
frilled
bullhead
requiem
Yukarıdaki çıktı, for
döngüsünün liste üzerinde yineleme yaptığını ve listedeki her öğeyi satır satır yazdırdığını gösterir.
Listeler ve diziler gibi sıralı veri türleri, yineleme için yaygın olarak kullanılır çünkü bunlar yinelenebilir. Bu veri türlerini, örneğin bir listeye öğe eklemek için range()
ile birleştirebilirsiniz:
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
Çıktı
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']
Burada, sharks
listesinin uzunluğundaki her bir öğe için 'shark'
adlı bir yer tutucu dize ekledik.
Bir for
döngüsü ile sıfırdan bir liste oluşturmak da mümkündür:
integers = []
for i in range(10):
integers.append(i)
print(integers)
Bu örnekte, integers
listesi boş olarak başlatılır, ancak for
döngüsü listeyi şu şekilde doldurur:
Çıktı
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Benzer şekilde, diziler üzerinden yineleme yapabiliriz:
sammy = 'Sammy'
for letter in sammy:
print(letter)
Çıktı
S
a
m
m
y
Dizilerde yineleme yapmak, yukarıdaki listelerde ve dizilerde olduğu gibi aynı formatta yapılır.
Bir sözlükte yineleme yaparken, anahtar:değer yapısını dikkate almanız gerekir. İşte hem anahtar hem de değeri çağıran bir örnek:
sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
Çıktı
name: Sammy
animal: shark
color: blue
location: ocean
Sözlüklerde for
döngüsü kullanırken, yineleme değişkeni sözlüğün anahtarlarına karşılık gelir ve dictionary_variable[iterating_variable]
değerlerine karşılık gelir. Yukarıdaki durumda, yineleme değişkeni key
anahtarlar için kullanıldı ve sammy_shark[key]
ise değerler için kullanıldı.
Döngüler, sıralı veri türleri üzerinde yineleme ve manipülasyon yapmak için sıklıkla kullanılır.
Sonuç
Python'daki for döngüsü, diğer programlama dilleriyle oldukça benzerdir. For döngüsünün yürütülmesini değiştirmek için break ve continue ifadelerini kullanabiliriz. Ancak, Python'da for döngüsünde isteğe bağlı else bloğu da bulunabilir.
Umarım yukarıdaki eğitimden ilginç fikirler edinmişsinizdir. Herhangi bir sorunuz varsa, aşağıdaki yorumlar kısmında bize bildirin.
Lisa Tagliaferri tarafından yazılan Python for loop Program makalesinin düzenlenmiş çevirisi.
Daha Fazla Oku:
- Sonraki Makale: Python'da Döngülerle Çalışırken Break, Continue ve Pass İfadeleri Nasıl Kullanılır
- Önceki Makale: Python 3'te While Döngüleri Nasıl Oluşturulur