Modül dersleri (3/4)
döngüler halinde ara, devam et ve başka
Bir döngü içinde (hem for hem de while) normal akışı şununla değiştirebilirsiniz:
üç yapı:
break— döngüden hemen çıkar.continue— vücudun geri kalanını atlar ve bir sonraki yinelemeye atlar.else(döngüde) — döngü birbreakolmadan sona erdiğinde yürütülür.
break
for n in [3, 7, 11, 4, 9]:
if n % 2 == 0:
primo_pari = n
break
primo_pari # 4break döngüyü mümkün olan en kısa sürede durdurur. break sonrasındaki herhangi bir şey
geçerli yinelemenin gövdesi yürütülmez.
continue
risultati = []
for n in range(1, 11):
if n % 2 == 0:
continue # skip evens
risultati.append(n * n)
risultati # [1, 9, 25, 49, 81]continue'yı "sonraki yinelemeye git" olarak düşünün. Öğeleri filtrelemek için kullanılır
bir girinti düzeyi daha eklemeden.
döngüde else (Pythonik deyim)
Python'a özgü bir özellik: döngüler aynı zamanda yalnızca aşağıdaki durumlarda çalıştırılan bir else'ye de sahip olabilir:
döngü doğal olarak sonlandırıldı (break olmadan). Aramalar için mükemmeldir:
target = 7
for n in [2, 4, 6, 8]:
if n == target:
trovato = True
break
else:
trovato = False
trovato # FalseŞu şekilde okuyun: _"listedeki her n için; break dalını alırsanız atlayın
diğer; aksi halde else" komutunu çalıştırın.
İç içe döngüler: break yalnızca en içteki döngüden çıkar
for x in range(3):
for y in range(3):
if x == y == 1:
break
print(x, y)break yalnızca for y'den çıkar, for x'den değil. Her ikisinden de çıkmak için bir kullanmalısınız
bayrak veya bir işlev + return.
Alışılmadık döngü...else yapısı
Python'da hem for hem de while döngüleri isteğe bağlı bir else cümlesi içerebilir. else bloğu yalnızca döngü normal şekilde tamamlanırsa (yani bir break ifadesiyle karşılaşılmadan) yürütülür. Bu, arama algoritmaları için çok faydalıdır (örneğin, "bir öğeyi arayın: bulunursa ara verin; aksi takdirde bulunamadığını bildirin").
Kendin dene
'Sayılar = [10, 15, 20, 25, 30, 35]' listesi verildiğinde, 7'ye bölünebilen ilk sayıyı bulun ve onu 'sonuç'a atayın. Hiçbiri yoksa -1 atayın.
İpucu göster
35, listede 7'ye bölünebilen ilk (ve tek) sayıdır.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
Bir for döngüsü (1, 21) kullanarak 1'den 20'ye kadar (dahil) tek sayılarla "tek_sayılar" listesini oluşturun ve çift sayıları atlamaya devam edin.
İpucu göster
Eğer n çift ise devam edin; aksi halde ekleyin.
3 denemeden sonra çözüm mevcut
Ek zorluk
Given the list `numbers = [7, 11, 14, 21, 25]`, write a `for` loop to find the first number that is divisible by 7 and also strictly greater than 10. When you find it, store it in `found` and exit the loop using `break`. Finally, evaluate `found`.
İpucu göster
Inside the loop, check if num % 7 == 0 and num > 10:, assign it to found and trigger break.
3 denemeden sonra çözüm mevcut