For Kullanımı
Python'da döngülerden biri de for döngüsüdür. Bu döngü, bir dizedeki (list, tuple, dict, set) veya metindeki (string) elemanları/harfleri tek tek ele alır.
Elbette for birçok programlama dilinde yineleyici işlevine sahiptir. Ancak python'da çok daha geniş bir kullanım olanağı sunar.
meyveler = ["muz", "elma", "kiraz"]
for x in meyveler:
print(x)
Python'da for döngüsü önceden bir değişken tanımlamayı veya dize sırası (index) belirtmeyi gerektirmez.
Metinleri Harf Harf Sıralamak
Tüm metin (string) türü değişkenler for kullanılarak harf harf sıralanabilir. Çıkan sonuç yine string olacaktır.
for x in "coğrafya":
print(x)
break İfadesi
Bu ifadeyi kullanarak for döngüsünü elemanların bitmesini beklemeden sonlandırabiliriz.
meyveler = ["elma", "portakal", "mandalina"]
for x in meyveler:
print(x)
if x == "portakal":
break
continue İfadesi
Bu ifadeyi kullanarak şimdiki yinelemeyi sonlandırabilir ve bir sonraki yineleme ile devam edebiliriz.
meyveler = ["elma", "portakal", "mandalina"]
for x in meyveler:
if x == "portakal":
continue
print(x)
Yukarıdaki kod çalıştırıldığında ekrana "portakal" yazdırılmadığı görülecektir. Çünkü portakal ise continue kullandık ve o yinelemeyi geçip bir sonrakinden devam etmesini söyledik.
range İfadesi
Belli sayıda tekrarlı bir döngü oluşturacaksak range(sayı) kodu kullanılabilir.
for x in range(6):
print(x)
Yukarıdaki kod çalıştırıldığında derleyicinin ekrana 0'dan 5'e kadar sayılar yazdırdığı görülecektir.
Eğer 0'dan değil de farklı bir sayıdan başlamasını istersek range(başla, git) kullanılabilir. İlk parametre hangi sayıdan başlayacağı, ikinci parametre kaça kadar gideceği (bu sayı dahil değildir) sayıdır.
for x in range(2, 6):
print(x)
range, varsayılan olarak birer birer artar. Ancak üçüncü parametrede artış miktarını belirtebiliriz. Örneğin 2'den 30'a kadar saydırmasını ve üçer üçer atlamasını istiyorsak aşağıdaki kod işimize yarayacaktır:
for x in range(2, 30, 3):
print(x)
else İfadesi
for döngüsü bittikten sonra yapılacakları, for'dan sonra kullanacağımız else ile belirtebiliriz:
for x in range(6):
print(x)
else:
print("Sonunda bitti!")
İç İçe Döngüler
Döngü içinde döngü kullanabiliriz. Böyle ifadelerde içteki döngü, dıştaki döngü kadar tekrarlanır.
sinif = ["1","2","3"]
sube = ["A","B","C"]
for x in sinif:
for y in sube:
print(x, y)
pass Deyimi
for döngüsünden sonra mutlaka kod yazılmalıdır. Eğer bu döngü çalıştırıldıktan sonra hiçbir kod çalıştırılmaması gerekiyorsa pass yazılarak döngü geçilebilir.
for x in [0, 1, 2]:
pass
Örnek 1
BaslangicSayi = int(input("Başlangıç değerini girin: "))
BitisSayi = int(input("Bitiş değerini girin: "))
toplam=0
for sayilar in range(BaslangicSayi, BitisSayi+1, 1):
toplam=toplam+sayilar
print(BaslangicSayi, "ile", BitisSayi, "arasındaki sayıların toplamı= ", toplam)
#aykut dulkadir tarafından yazılmıştır
Örnek 2
Sayi = int(input("Sayı değerini girin: "))
toplam=1 #baslangic degeri
IslemMetni='' #tanımlama yapmak için kullanıldı
for sayilar in range(1,Sayi+1):
toplam*=sayilar
IslemMetni = IslemMetni + str(sayilar) + '*'
print(Sayi, "faktöriyeli: ", toplam)
print(IslemMetni)
Örnek 3
Sayi1 = int(input("Sayı1 değerini girin: "))
Sonuc=1
for Sayac in range(Sayi1, 0, -1):
Sonuc*=Sayac
print(Sayac, end=",") #yanyana yazmasi icin
print("nSonuc:", Sonuc) #n yeni satıra geçmesi için kullanıldı
Örnek 4
Mars="""Korkma, sönmez bu şafaklarda yüzen al sancak;
Sönmeden yurdumun üstünde tüten en son ocak.
O benim milletimin yıldızıdır, parlayacak;
O benimdir, o benim milletimindir ancak.
Çatma, kurban olayım çehreni ey nazlı hilâl!
Kahraman ırkıma bir gül… ne bu şiddet bu celâl?
Sana olmaz dökülen kanlarımız sonra helâl,
Hakkıdır, Hakk’a tapan, milletimin istiklâl."""
Mars=Mars.lower()
#print(Mars)
TemizlenecekKarakterler = [",", ".", "?", "!", ";"]
for Degis in TemizlenecekKarakterler:
#print(Degis)
Mars = Mars.replace(Degis, "")
#print(Mars)
Kelimeler = Mars.split()
##print(Kelimeler)
Aranan = input("Hangi kelimeyi arayayım ").lower()
BulunanSayisi=0
ToplamKelimeSayisi=0
for Kelime in Kelimeler:
#print(kelime)
ToplamKelimeSayisi+=1
if(Kelime == Aranan):
BulunanSayisi+=1
print("Bu metinde", ToplamKelimeSayisi, "kelime var, aradığınız ('", Aranan, "') dan", BulunanSayisi, "adet vardır")
Kaynak