BaşlayınÜcretsiz Başlayın

Bir üretici (generator) oluştur

Önceki egzersizlerde, çoğunlukla anlama (comprehension) söz dizimini kullanan üretici ifadeleri (generator expressions) yazdın. Üretici ifadeleri için comprehension söz dizimini kullanabilmek işi ne kadar da kolaylaştırdı!

Şimdi, videodan hatırlarsan sadece üretici ifadeleri yok; üretici fonksiyonlar da var. Üretici fonksiyonlar, tıpkı üretici ifadeler gibi tek bir değer döndürmek yerine bir değerler dizisi üretir (yield eder). Bir üretici fonksiyonu normal bir fonksiyon gibi tanımlanır, ancak bir değer ürettiğinde return yerine yield anahtar sözcüğünü kullanır.

Bu egzersizde, önceki egzersizde tanımladığın üretici ifadeyle benzer bir mekanizmaya sahip bir üretici fonksiyon oluşturacaksın:

lengths = (len(person) for person in lannister)

Bu egzersiz

Python Araç Kutusu

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Tek parametresi input_list olan get_lengths() fonksiyonunun başlığını tamamla.
  • Fonksiyon tanımındaki for döngüsünde, input_list içindeki dizgelerin uzunluğunu yield et.
  • get_lengths() üretici fonksiyonunun ürettiği değerleri yazdıran for döngüsünün yinelenebilir kısmını tamamla. lannister listesini geçirerek get_lengths() çağrısını kullan.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Create a list of strings
lannister = ['cersei', 'jaime', 'tywin', 'tyrion', 'joffrey']

# Define generator function get_lengths
def ____:
    """Generator function that yields the
    length of the strings in input_list."""

    # Yield the length of a string
    for person in input_list:
        ____

# Print the values generated by get_lengths()
for value in ____:
    print(value)
Kodu Düzenle ve Çalıştır