
Hep Beraber Python Öğrenelim
Gelin hep beraber ilim ile bilimi birleştirip, ufkumuzu genişletecek bizi belki de biz yapan yeni projeleri hayata geçirebileceğimiz, hem de bunları yaparken zevk alacağımız, her şeyden önemlisi amacımıza yönelik kodlayabiliceğimiz bir programlama dili olan Python'u Gelin Hep Beraber birbirimiz ile bir şeyler paylaşarak tecrübe kazanalım. Böyle öğrenelim ve öğretelim.

Python Iterators
Hepiniz şu ana kadar for döngüsü olmayan bir programa program demiyorsunuz. For döngüsü sayesinde listedeki her elemanı ekrana sırasıyla yazdırabiliyoruz. Bu yeri geldiğinde string bir değer de olabilir. Peki bunun arka planın da işleyen işlemler neler, Python bunları nasıl bizlere sıralı şekilde döndürüyor. İşte bu sorunun cevabını irdeleyeceğiz hep beraber ilk önce for döngüsüne basit bir örnek yapalım.
Kod:
[font=monospace]GİRDİLER:
Hazine [color=#666666]=[/color] [[color=#666666]1[/color],[color=#666666]2[/color],[color=#666666]3[/color]]
[color=#008000][b]for[/b][/color] i [color=#AA22FF][b]in[/b][/color] Hazine:
[color=#008000][b]print[/b][/color](i)
[color=#666666]---------------------------------[/color]
Hazine [color=#666666]=[/color] {[color=#BA2121]'Bir'[/color]:[color=#666666]1[/color], [color=#BA2121]'İki'[/color]:[color=#666666]2[/color]}
[color=#008000][b]for[/b][/color] i [color=#AA22FF][b]in[/b][/color] Hazine:
[color=#008000][b]print[/b][/color](i)
[color=#666666]---------------------------------[/color]
Hazine [color=#666666]=[/color] [color=#BA2121]"123"[/color]
[color=#008000][b]for[/b][/color] i [color=#AA22FF][b]in[/b][/color] Hazine:
[color=#008000][b]print[/b][/color](i)
[/font]
Kod:
[font=monospace]ÇIKTILAR:
[color=#666666]1[/color]
[color=#666666]2[/color]
[color=#666666]3[/color]
[color=#666666]----[/color]
Bir
İki
[color=#666666]----[/color]
[color=#666666]1[/color]
[color=#666666]2[/color]
[color=#666666]3[/color]
[/font]
Üsteki örnekte for döngüsünü basit bir şekilde gördük. Peki bu for döngüsü listedeki elemanları alıp nasıl ekrana getiriyor. Şimdi bu işlemleri kendimiz manuel yapmaya çalışalım. Kendi Iterator işlemimizin container objesindeki elemanları sıralı bir şekilde ziyaret nasıl edeceğine bakalım.
Kod:
[font=monospace]GİRDİ:
Hazine [color=#666666]=[/color] [[color=#666666]1[/color],[color=#666666]2[/color],[color=#666666]3[/color]]
iterators [color=#666666]=[/color] [color=#008000]iter[/color](Hazine)
[color=#008000][b]print[/b][/color]([color=#008000]next[/color](iterators))
[color=#008000][b]print[/b][/color]([color=#008000]next[/color](iterators))
[color=#008000][b]print[/b][/color]([color=#008000]next[/color](iterators))
[/font]
Kod:
[font=monospace]ÇIKTI:
[color=#666666]1[/color]
[color=#666666]2[/color]
[color=#666666]3[/color]
[/font]
Buraya kadar işlemimiz aynı gibi olsa da, bir tane daha "print(next(iterators))" eklediğimizde veya ardı ardına çalıştırdığımız da ise "StopIteration" hatası alacağız. Bunu da;
Kod:
[font=monospace]GİRDİ:
Hazine [color=#666666]=[/color] [[color=#666666]1[/color] ,[color=#666666]2[/color] ,[color=#666666]3[/color]]
iterators [color=#666666]=[/color] [color=#008000]iter[/color](Hazine)
[color=#008000][b]while[/b][/color] [color=#008000]True[/color]:
[color=#008000][b]try[/b][/color]:
cıktı [color=#666666]=[/color] [color=#008000]next[/color](iterators)
[color=#008000][b]print[/b][/color](cıktı)
[color=#008000][b]except[/b][/color] [color=#D2413A][b]StopIteration[/b][/color]:
[color=#008000][b]break[/b][/color]
[/font]
Kod:
[font=monospace]ÇIKTI:
[color=#666666]1[/color]
[color=#666666]2[/color]
[color=#666666]3[/color]
[/font]
Yöntemi ile çözmek mümkün. Burada yaptığımız işlemleri şöyle açıklamak gerekirse For döngüsü listedeki __iter__() objenin kendisini itere etmesini bilen bir iteratör dönmesini bekliyor. Böylece __next__() Method'unu çağırır, iteratör objesi her çağrıda bir sonraki elemanı bizlere döndürür.
Kod:class Iter: def __init__(self, data): self.data = data self.datal = len(data) self.index = -1 def __iter__(self): return self def __next__(self): self.index = self.index + 1 if self.index == self.datal: raise StopIteration return self.data[self.index] iter = Iter("DeSTuRSuZz_") for i in iter: print(i)

Eveeeet TÜRK HACK TEAM Ailesi bugünlük bu kadar olsun.Takipte kalın takıldığınız yerlerde sormaktan çekinmeyin öğrendiklerinizi bir başkalarına öğretmeyi ihmal etmeyin kısacası cimrilik yapmayalım.
Kod:
[COLOR="White"][B][SIZE="2"] [COLOR="YellowGreen"]Yararlı Türkçe Kaynaklar;[/COLOR]
https://python-istihza.yazbel.com/donguler.html#for-dongusu
https://medium.com/python-yaz-lar/python-generator-ve-i-teratorler-a53e59f7c5b1
https://www.btkakademi.gov.tr ----> Sıfırdan İleri Seviye Python Programlama eğitimi yararlı olucaktır.
[/SIZE]
[/COLOR][/B]
Kod:
[COLOR="White"][B][SIZE="2"] [COLOR="yellowgreen"]Yararlı Yabancı Kaynaklar;[/COLOR]
https://docs.python.org/3/reference/datamodel.html#object.__iter__
https://docs.python.org/3/library/stdtypes.html#iterator.__next__
https://www.geeksforgeeks.org/iterators-in-python/
https://www.programiz.com/python-programming/iterator
https://docs.python.org/3/tutorial/classes.html#iterators
https://www.w3schools.com/python/python_iterators.asp
https://www.askpython.com/python/python-iter-function
https://www.programiz.com/python-programming/methods/built-in/iter
[/SIZE]
[/COLOR][/B]

Kod:
[CENTER][B][COLOR="White"]Yeni fikirlere açığım, düşüncelerinizi yazarsanız. Daha da geliştiririm.
[/COLOR][/B][/CENTER]


Son düzenleme:





