Python 112 - For ve While döngüleri
Merhaba,
Programlarımızda bazen aynı şeyi tekrar tekrar yapmamız gerekir. Her seferinde aynı kodu alt alta daktilodaymışız gibi uzun uzun yazmak yerine programlama dillerinde bu tekrarı kontrol eden ve düzenleyen yapılar mevcuttur. Bunlara loop yahut döngü de denir. Pythonda for
ve while
olmak üzere hepi topu 2 döngü çeşidi vardır.
for döngüsü
For döngüsü, ona sunduğumuz bir liste ya da sayı aralığının her bir elemanı üzerinde sırayla gezmemizi, her bir liste elemanına ya da aralıktaki sayıya istediğimiz işlemi yapmamızı sağlar. Mesela ekip adında bir isim listemiz olsun ve listedeki herkese merhaba demek isteyelim:
ekip = ["Ali", "Mehmet", "Ahmet"]
for kişi in ekip:
print("Merhaba " + kişi)
# Merhaba Ali
# Merhaba Mehmet
# Merhaba Ahmet
Önce ekip listemizi tanımladık. Sonra for
yapısına geliyoruz. Burada for
kelimesinden sonra, her seferinde sıradaki elemanın değerini taşıyacak bir değişken ismi vermemiz gerekiyor. Bu örnekte ona kişi
demişiz, siz istediğinizi yazabilirsiniz. Sonra in
kelimesini, en sonda da ana listemizin ismini veriyoruz. Tekrar eden işlemleri alt satırdan itibaren tarif etmek üzere de iki nokta üst üste :
ile satırı bitiriyoruz. Aşağıdaki satırı biraz içeriden başlatıyoruz. Bunu yapmazsak olmaz, blok tanımlamamış oluruz ve zaten kodumuz da çalışmaz. Bunu daha önce görmüştük, Pythonda bloklar girintilerle belirleniyordu, unutmayalım.
for
döngüsü, bu listedeki elemanların her birini sırayla kişi
değişkenimize koyuyor. Biz de kişi
değişkenindeki ismin başına Merhaba yapıştırıp ekrana basıyoruz. Programı çalıştırdığımızda kişi değişkeni ilk olarak Ali olur, ekrana "Merhaba Ali" yazılır. Bir sonraki döngüde artık kişi değişkeninde Mehmet olacaktır ve ekrana "Merhaba Mehmet" yazılır, bu şekilde gider…
Başka bir örnek:
for harf in "Ali":
print(harf)
# A
# l
# i
Ali sözcüğünün elemanları neler? Tabi ki Ali'deki her bir harf. O zaman burada ekrana tek tek A
yazılır, l
yazılır ve i
yazılır. Çünkü for
komutu her yeni döngüde harf
değişkenine bir sonraki elemanı atamaktadır. Son bir örnek de sayılarla olsun:
for i in range(1,10):
print(i*i)
# 1
# 4
# 9
# ...
Burada range
fonksiyonunun elemanları neler, 1 den 10 a kadar sayılar. O halde döngü içindeki print komutunda i lerin değerleri sırasıyla 1, 2, 3… olacaktır.
while döngüsü
Elimizde çoğul bir yapıdan ziyade devam eden ya da değişen bir durum var ise while
yapısını kullanmamız uygundur. Yani bir duruma bağlı olarak tekrar etmesini istediğimiz işlemler için while
kullanılır. Dolayısıyla for
daki gibi, tekrar sayısını önceden bilmemiz de mümkün olmayacaktır.
sıcaklık = 12
while sıcaklık < 20 :
print(sıcaklık)
sıcaklık = sıcaklık + 5
print("son")
# 12
# 17
İlk başta sıcaklık değişkenimize 12 değerini atıyoruz. while
yapısına geldik. while
kelimesinden sonra bir test yapıyoruz. sıcaklık < 20 mi diye. Bu koşul geçerliyse (yani True
ise) girintili blokta yazılan işlemler yapılacak. İki nokta üst üste :
işareti de bunu anlatıyor aslında.
İlk durum kontrolümüzde sıcaklık < 20 ifadesi True
sonucu verir çünkü 12 < 20 dir. Ekrana o anki sıcaklık değeri olarak 12 yazılır. Döngünün 2. ve son komutuyla sıcaklık 5 derece arttırılır ve tekrar döngünün başına gidilir. Durum kontrolünde bu sefer sıcaklık 17 derecedir ve yine 17 < 20 olduğundan iki nokta üst üste bloğu çalışır ve ekrana 17 yazlır. Sıcaklık 5 artar ve 22 olur. Ama bu sefer 22 < 20 ifadesi False
olacağından artık while
bloğuna girilmeyecektir ve ekrana "son" yazılarak program sona erdirilir.
Programlamada tekrar blokları önemli bir yer tutar. O yüzden bu dersimizi iyice hazmetmek için kendiniz de denemeler yapmayı ihmal etmeyin. Tekrar görüşmek dileklerimle…
- Python 117 - Numpy 2 / 11.07.2021
- Python 116 - Pythonu online ve kütüphaneleriyle birlikte kullanmak / 04.07.2021
- Python 115 - Pythonda Kütüphaneler ve NumPy / 27.06.2021
- Python 114 - Alıştırmalar / 20.06.2021
- Python 113 - String İşlemleri / 13.06.2021
- Python 112 - For ve While döngüleri / 30.05.2021
- Python 111 - Özet / 23.05.2021
- Python 110 - Fonksiyonlar / 29.03.2021
- Python 109 - Slicing / 28.02.2021