While-else ve for-else konularını mümkün olduğunca detaylı ve sade anlatabilir mi birisi?
Aslında while-else
ve for-else
deyimlerinin if-else
deyimine oldukça benzer bir yapısı var. Sizinle açıklamalarıyla birlikte bir kaç basit örnek paylaşayım.
Örnek-1:
a = 1
while a < 10: # a, 10'dan küçük olduğu sürece
a += 1 # a, 1 birim arttırılır.
else: # Şayet a, 10'dan küçük olmazsa
print(a) # a'nın değeri ekrana yazdırılır.
Örnek-2
for i in range(10): # 0'dan 9'a kadar olan her bir i sayısı için
pass # pass komutu çalıştırılır. Yani hiçbir işlem yapılmaz.
else: # Bu döngü bittikten sonra
print(i) # i değerinin aldığı son değer ekrana yazdırılır.
Örnek-3
for i in range(2, 10): # 2'den 10'a kadar olan her bir i sayısı için
for j in range(2, i): # 2'den i'ye kadar olan her bir j sayısı için
if i % j == 0: # Eğer i bölü j işleminde kalan 0 ise
break # İçteki for döngüsü durdurulur.
else: # Şayet içteki for döngüsünü durdurmayan sayı değerleri var ise
print(i) # Bu değerler ekrana yazdırılır.
Örnek-4
veri_girisi = input("Sayı gir: ") # Kullanıcıdan değer girmesi istenir.
while not veri_girisi.isnumeric(): # Kullanıcının girdiği değer sayı olmadığı müddetçe
veri_girisi = input("Sayı gir: ") # Kullanıcıdan tekrar değer girmesi istenir.
else: # Şayet kullanıcının girdiği değer sayı ise
print(veri_girisi) # Bu değer ekrana yazdırılır.
@dildeolupbiten Sitede loop-else anlatılmamış. Bence siz eklemelisiniz, bu konunun da bilinmesinde fayda var.
Hangi sitede, yazbel belgelerinden mi bahsediyorsunuz?
@dildeolupbiten Evet.
Sanki dokümanın içinde belgenin bir yerlerinde for-else
ile alakalı bir örnek görmüştüm diye hatırlıyorum ama emin olamadım. neyse belki uygun bir yere eklenebilir.
Varsa bile while-else ile birlikte daha kapsamlı anlatılmalı.
Arkadaşlar, bu formülde
`for i in range(2, 10): for j in range(2, i): if i % j == 0: break else: print(i) `
Sonuçlarımız:
2,3,5,7
arasında neden 2 var. i 'ye 2 değeri verilirken j 'yede 2 değeri verilip sonuç 2%2=0 olmuyor mu?
i = 2
iken for j in range(2, 2)
gibi bir ifade oluşuyor. Ve range(2, 2)
'nin eleman sayısı 0
olduğu için, for
blokunda yer alan if i % j == 0:
ifadesine geçilmiyor, doğrudan else
satırına geçiliyor.
Örnek:
for j in range(2, 2):
print("Döngünün içindeyiz")
else:
print("Döngünün dışındayız.")