CodeBlanks Logo Icon CodeBlanks

Sonucu yazdır

Arama sonucunu bulundu/bulunamadı biçiminde ekrana yazdırırsın.

Tüm geçişleri bul

Son adımda find_all(notes, target) fonksiyonunu ekliyoruz. Bu, hedefin dizideki tüm geçtiği yerleri bir dizide toplar.

Her eşleşmenin indeksini bir sonuç dizisine ekleriz. Bu, bir notun birden çok öğrencide geçip geçmediğini bulmak için kullanışlıdır.

Proje tamamlandı

Artık çalışan bir not arama uygulaman var: init_notes diziyi verir, find_note arar, report_result yazdırır, find_all tüm geçişleri bulur.

Her fonksiyon bir öncekinin üzerine inşa edildi. Bu, gerçek dünya yazılım geliştirmede kullanılan birikimli yaklaşımdır.

Uygulama Tüm geçişleri bul

find_all(notes, target) yaz. Hedefin tüm geçtiği indeksleri bir dizide topla ve yazdır. find_all([85, 92, 78, 92], 92) çağrısı 1, 3 yazsın.

Başlangıç kodu

solution.py
def init_notes():
    # Not dizisini döndür
    return [85, 90, 78, 92, 88]
def find_note(notes, target):
    # Hedefi ara
    for i in range(len(notes)):
        if notes[i] == target:
            return i
    return -1
def report_result(notes, target):
    # Sonucu yazdır
    idx = find_note(notes, target)
    if idx >= 0:
        print(idx)
    else:
        print('yok')
def find_all(notes, target):
    # Tüm indeksleri bul

Örnek çözüm

solution.py
def init_notes():
    # Not dizisini döndür
    return [85, 90, 78, 92, 88]
def find_note(notes, target):
    # Hedefi ara
    for i in range(len(notes)):
        if notes[i] == target:
            return i
    return -1
def report_result(notes, target):
    # Sonucu yazdır
    idx = find_note(notes, target)
    if idx >= 0:
        print(idx)
    else:
        print('yok')
def find_all(notes, target):
    # Tüm indeksleri bul
    result = []
    for i in range(len(notes)):
        if notes[i] == target:
            result.append(i)
    for idx in result:
        print(idx)
find_all([85, 92, 78, 92], 92)

Beklenen çıktı

1
3

Soru ve cevaplar

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

1 Sonucu yazdır: kavramları eşleştir

Kavram Anlamı
find_all Tümünü bul
result Sonuç dizisi
append Ekle
print Yazdır

2 find_all ne döndürür?

  • Tek indeks
  • Hata
  • İndeks dizisi Doğru cevap
  • Bir not

Açıklama: find_all indeks dizisi döndürür.

3 Toplama

Soru
Her eşleşme result dizisine ____ edilir.
Cevap
Her eşleşme result dizisine append edilir.

Açıklama: append doğru.

Başlangıç bölümündeki tüm dersler