For Döngüsü



Başlangıç, bitiş ve artış değerleri belirtilen işlemleri tek tek tekrar eder.

Ör: 1’den 5’ kadar olan sayıları yazdıralım.

print(1)

print(2)

print(3)

print(4)

print(5)

Çıktı:

1

2

3

4

5

Ancak, 1’den 100’e kadar yazmak gerekirse böyle bir çözüm yolu doğru olmayacaktır! Bu

durumda döngü yapıları tercih edilmelidir. Python dilinde döngü için while ve for yapıları

kullanılır.

Ör: 1’den 100’e kadar olan tüm sayıları yazdıralım. Değişkenimiz n olsun;

for n in range(1,100):

 print(n, end=” “)

Çıktı: 1 2 3 . . . . . 97 98 99

Ör: Şimdi de 1’den 100’e kadar tüm tek sayıları yazdıralım. Değişkenimiz yine n olsun;

for n in range(1,100,2):

 print(n, end=” “)

Çıktı: 1 3 5 . . . . . 95 97 99

Açıklama: range(1, 100, 2) ifadesindeki 1 başlangıç sayısıdır. Eğer burası boş bırakılırsa sayı

otomatik olarak sıfırdan başlar. 100 ise yazılacak sayıların sınırıdır. 100 çıktıya dâhil değildir. 2

ise artış miktarını gösterir. Yani sayıyı 2’şer arttırır.

Örnekler:

range(10) → 0, 1,2,3,4,5,6,7,8,9 başlangıç ve artış değeri yok. Sadece bitiş değeri var.

range(1, 10) → 1,2,3,4,5,6,7,8,9  artış değeri yok. Sadece başlangıç ve bitiş değeri var.

range(1, 10, 2) → 1,3,5,7,9  başlangıç, bitiş ve artış değeri var.

range(10, 0, -1) → 10,9,8,7,6,5,4,3,2,1  buradaki artış değeri eksiye doğru gitmektedir.

range(10, 0, -2) → 10,8,6,4,2

range(2, 11, 2) → 2,4,6,8,10

range(-5, 5) → −5,−4,−3,−2,−1,0,1,2,3,4

range(1, 2) → 1

range(1, -1, -1) → 1,0

range(0) → ()

Ör: 21’den 0’a kadar olan sayıları 3’er 3’er azaltarak yazdıralım.

for n in range(21,0,-3):

 print(n, end=” “)

Çıktı: 21 18 15 12 9 6 3

Ör: 1’den 100’ kadar olan sayıların toplamı

top= 0

for i in range(1,100):

 top+= i

print(top)

Çıktı: 4950

Ör: 10 ve 10’un üstleri yazdıran program

for i in range(5):

 print("{}".format(10**i))

Çıktı:

1

10

100

1000

10000

Ör: Bir string değişkeninin her bir karakterini ayrı ayrı işleme ve yazdırma

a = "kodlama"

for harf in a:

 print(harf, end=” “)

Çıktı: k o d l a m a

Ör:

sayılar = "12345"

for sayı in sayılar:

 print(int(sayı) * 2, end=” ”)

Çıktı: 2 4 6 8 10

Ör:

sayılar = "1234567"

for i in sayılar:

 if int(i) > 3:

 print(i, end=” “)

Çıktı: 4 5 6 7

Açıklaması: sayılar değişkeni oluşturduk. “1234567” ifadesindeki her bir karakteri ayırdık.

Yani tüm sayılar artık bağımsızlığını ilan etmiş durumda. Ayrıca her bir karakteri i değişkene

atadık. Ancak biz bu karakterleri int(i) kodunu yazarak tamsayıya çevirdik. Çünkü

matematiksel işlemler yapmak için verileri sayıya çevirmemiz gerekiyor. if komutuyla da

3’ten büyük olanları yazdırdık.

Ör: Parola girilirken Türkçe karakter uyarısı veren program

tr_harfler = "ŞşÇçĞğÖöÜüİı"

parola = input("Parolanız: ")

for karakter in parola:

 if karakter in tr_harfler:

 print("Parolada Türkçe karakter kullanılamaz")

Ör: İlk_metin‘de olan ama ikinci_metin‘de olmayan öğeleri yazdırmak

ilk_metin = "Bilgisayar"

ikinci_metin = "Bilişim"

for s in ilk_metin: #ilk_metin’deki her öğeye s diyoruz

 if not s in ikinci_metin: #eğer bu öğeler ikinci_metinde yoksa

 print(s, end=” “) #bu olmayan s’leri yazdırıyoruz

Çıktı: g s a y a r

Yorumlar