Python Eğitimi

Python ANA SAYFA Python Tanıtımı Python Başlarken Python Sözdizimi Python Yorumları Python Değişkenleri Python Veri Türleri Python Numaraları Python Döküm Python Dizeleri Python Boole'leri Python Operatörleri Python Listeleri piton demetleri Python Setleri Python Sözlükleri Python Eğer... Başka Python while Döngüleri Döngüler için Python Python Fonksiyonları piton lambda Python Dizileri Python Sınıfları/Nesneleri Python Kalıtımı Python Yineleyiciler Python Kapsamı Python Modülleri Python Tarihleri Python Matematik Python JSON'u Python Normal İfade Python PIP'si Python Deneyin... Hariç Python Kullanıcı Girişi Python Dize Biçimlendirme

Dosya yönetimi

Python Dosya İşleme Python Okuma Dosyaları Python Dosyaları Yazma/Oluşturma Python Dosyaları Sil

Python Modülleri

NumPy Eğitimi Panda İzlenecek Yol Scipy Eğitimi

Python Matplotlib'i

Matplotlib'e Giriş Matplotlib Başlarken Matplotlib Pyplot Matplotlib Çizimi Matplotlib İşaretçileri Matplotlib Hattı Matplotlib Etiketleri Matplotlib Izgarası Matplotlib Alt Noktaları Matplotlib Dağılımı Matplotlib Çubukları Matplotlib Histogramları Matplotlib Pasta Grafikleri

Makine öğrenme

Başlarken Ortalama Medyan Modu Standart sapma Yüzdelik Veri Dağıtımı Normal Veri Dağılımı Dağılım grafiği Doğrusal Regresyon Polinom Regresyon Çoklu regresyon Ölçek Tren/Test Karar ağacı

Python MySQL

MySQL'e Başlayın MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Ekle MySQL Seçimi MySQL Nerede MySQL Sıralaması MySQL Sil MySQL Bırakma Tablosu MySQL Güncellemesi MySQL Sınırı MySQL'e Katılma

Python MongoDB

MongoDB Başlarken MongoDB Veritabanı Oluştur MongoDB Koleksiyon Oluştur MongoDB Ekle MongoDB Bul MongoDB Sorgusu MongoDB Sıralaması MongoDB Sil MongoDB Damla Koleksiyonu MongoDB Güncellemesi MongoDB Sınırı

Python Referansı

Python'a Genel Bakış Python Yerleşik İşlevleri Python Dizisi Yöntemleri Python Liste Yöntemleri Python Sözlük Yöntemleri Python Tuple Yöntemleri Python Kümesi Yöntemleri Python Dosya Yöntemleri Python Anahtar Kelimeleri Python İstisnaları Python Sözlüğü

Modül Referansı

Rastgele Modül İstek Modülü İstatistik Modülü Matematik Modülü cMath Modülü

Python Nasıl Yapılır?

Liste Kopyalarını Kaldır Bir Dizeyi Ters Çevir İki Sayı Ekle

Python Örnekleri

Python Örnekleri Python Derleyici Python Alıştırmaları Python Testi Python Sertifikası

Python Yineleyiciler


Python Yineleyiciler

Yineleyici, sayılabilir sayıda değer içeren bir nesnedir.

Yineleyici, yinelenebilen bir nesnedir, yani tüm değerler arasında geçiş yapabilirsiniz.

Teknik olarak, Python'da bir yineleyici, yöntemlerden oluşan yineleyici protokolünü uygulayan bir nesnedir __iter__() ve __next__().


Yineleyici ve Yinelenebilir

Listeler, demetler, sözlükler ve kümelerin tümü yinelenebilir nesnelerdir. Bir yineleyici alabileceğiniz yinelenebilir kaplardır .

Tüm bu nesnelerin iter()bir yineleyici elde etmek için kullanılan bir yöntemi vardır:

Örnek

Tuple'dan bir yineleyici döndürün ve her değeri yazdırın:

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
print(next(myit))

Dizeler bile yinelenebilir nesnelerdir ve bir yineleyici döndürebilir:

Örnek

Dizeler ayrıca bir dizi karakter içeren yinelenebilir nesnelerdir:

mystr = "banana"
myit = iter(mystr)

print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))

Yineleyici Üzerinden Döngü Yapmak

forYinelenebilir bir nesneyi yinelemek için bir döngü de kullanabiliriz :

Örnek

Bir demetin değerlerini yineleyin:

mytuple = ("apple", "banana", "cherry")

for x in mytuple:
  print(x)

Örnek

Bir dizenin karakterlerini yineleyin:

mystr = "banana"

for x in mystr:
  print(x)

Döngü aslında bir yineleyici nesne oluşturur ve forher döngü için next() yöntemini yürütür.



Yineleyici Oluştur

Yineleyici olarak bir nesne/sınıf oluşturmak için yöntemleri __iter__()ve __next__()nesnenize uygulamanız gerekir.

Python Sınıfları/Nesneleri bölümünde öğrendiğiniz gibi , tüm sınıfların __init__(), nesne oluşturulurken bazı başlatma işlemleri yapmanıza olanak sağlayan adlı bir işlevi vardır.

Yöntem __iter__()benzer davranır, işlemler yapabilirsiniz (başlatma vb.), ancak her zaman yineleyici nesnenin kendisini döndürmeniz gerekir.

Yöntem __next__()ayrıca işlem yapmanıza izin verir ve sıradaki bir sonraki öğeyi döndürmesi gerekir.

Örnek

1 ile başlayan sayıları döndüren bir yineleyici oluşturun ve her dizi bir artacaktır (1,2,3,4,5 vb. döndürerek):

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    x = self.a
    self.a += 1
    return x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

StopYineleme

Yeterli next() ifadeniz varsa veya bir fordöngüde kullanılmışsa, yukarıdaki örnek sonsuza kadar devam eder.

İterasyonun sonsuza kadar devam etmesini önlemek için StopIterationifadeyi kullanabiliriz.

Yöntemde __next__(), yineleme belirli sayıda yapılırsa bir hata oluşturmak için bir sonlandırma koşulu ekleyebiliriz:

Örnek

20 yinelemeden sonra dur:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
  print(x)