CodeBlanks Logo Icon CodeBlanks

count ve cycle

count ve cycle ile sonsuz yineleyicileri öğrenirsin.

count ve cycle

count(start, step) sonsuz artan sayılar üretir; cycle(iterable) bir yinelenebilir nesneyi sonsuz kez tekrarlar. İkisi de sonsuz yineleyici'dir; dikkatli kullanılmazsa sonsuz döngüye yol açar.

Örnek: count(10, 2) çağrısı 10, 12, 14, 16, ... üretir. cycle("AB") çağrısı A, B, A, B, ... üretir. Bunları islice ya da zip ile sınırlamak gerekir; yoksa yineleme hiç bitmez.

Sınırlama olmadan kullanma

Sonsuz yineleyicılarda for c in count(1): yazarsan program asla durmaz. Bu yüzden islice ya da zip ile bir sınır koyarsın. zip en kısa yinelenebilir bittiğinde durur; bu özellik sayesinde sonsuz yineleyiciyı güvenle kullanabilirsin.

Örnek: list(zip(count(1), ["a", "b"])) çağrısı [(1, 'a'), (2, 'b')] döner. İkinci liste iki öğeli olduğu için count da iki öğe üretir ve durur. Bu, numaralandırma benzeri işler için pratik bir yöntemdir.

Uygulama cycle ve islice kullan

from itertools import cycle, islice ile başla. c = cycle([1, 2]) ile bir cycle oluştur. result = list(islice(c, 5)) ile ilk beş öğeyi al. Sonra print(result) ile yazdır.

Başlangıç kodu

main.py
# cycle ve islice ile sınırlı yineleme

Örnek çözüm

main.py
# cycle ve islice ile sınırlı yineleme
from itertools import cycle, islice

c = cycle([1, 2])
result = list(islice(c, 5))
print(result)

Beklenen çıktı

[1, 2, 1, 2, 1]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 count import satırı

Soru
from itertools import count, ____

for i in zip(count(1), ["a", "b"]):
    print(i)
Cevap
from itertools import count, cycle

for i in zip(count(1), ["a", "b"]):
    print(i)

Açıklama: cycle de itertools modülündedir.

2 count(1) ne zaman durur?

  • Hiçbir zaman
  • 100'de
  • Bir veri bittiğinde
  • Sınırlayıcı ile Doğru cevap

Açıklama: count ancak islice ya da zip gibi bir sınırlayıcı ile durur.

3 Sonsuz yineleyici eşleştir

Kavram Anlamı
count Sonsuz sayı
cycle Sonsuz tekrar
islice Sınırlayıcı
zip En kısa biter

Orta seviye bölümündeki tüm dersler