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

#Girilen iki sayı arasındaki sayıların toplamını bularak ekrana yazdırınız.
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 

#Girilen sayının faktöriyelini bularak ekrana yazdırınız.
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

#Girilen sayının faktöriyelini bularak ekrana yazdırınız.
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
#İstiklal marşında kelime arama
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

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...