Python üreteci
Python işlevleri ve meth
Michael Zippo
18.11.2021
Yineleyiciler Python’da √∂nemli bir rol oynar. Yinelenebilecek bir nesne olu≈üturmanƒ±za izin verirler. Bir for in d√∂ngusu aracƒ±lƒ±ƒüƒ±yla eri≈üilebilen verileri depolamak için iyi bir yoldur.
Yineleyicilerle ilgili sorun, bir tane olu≈üturmak için çok fazla çalƒ±≈üma gerektirmesidir. Yararlƒ±dƒ±rlar, ancak bir tanesinin çalƒ±≈ümasƒ± için çok fazla kod yazmanƒ±z gerekir. √úreteçler bu sorunun ç√∂zulmesine yardƒ±mcƒ± olur.
Bu kƒ±lavuzda, Python ureteçlerinin ne olduƒüu ve bunlarƒ± neden kullanmanƒ±z gerektiƒüi hakkƒ±nda konu≈üacaƒüƒ±z. Nasƒ±l çalƒ±≈ütƒ±klarƒ±nƒ± anlamanƒ±za yardƒ±mcƒ± olmak için Python’da bir olu≈üturucu da uygulayacaƒüƒ±z.
Daha fazla uzatmadan başlayalım!
Jeneratör nedir?
Olu≈üturucu, Python’da yineleyici olu≈üturmanƒ±n basit bir yoludur. √úzerinde yineleme yapabileceƒüiniz bir nesne d√∂nduren bir i≈ülevdir.
√úreticilere genellikle s√∂zdizimsel ≈üeker denir. Bunun nedeni, Python’a mutlaka yeni i≈ülevler eklememeleridir. Kodunuzu daha verimli hale getirmeye yardƒ±mcƒ± olurlar.
Yineleyiciler gibi, bir olu≈üturucu uzerinde yalnƒ±zca bir kez yineleme yapabilirsiniz. Bunun nedeni, olu≈üturucularƒ±n kaç kez yinelendiklerini takip etmeleri ve sƒ±fƒ±rlanamamasƒ±dƒ±r.
Bir Python yineleyicisine bir göz atalım:
< p>Katƒ±lƒ±mcƒ±larƒ±n %81’i, bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri konusunda daha emin hissettiklerini belirtti. Bugun bir eƒüitim kampƒ± ile e≈üle≈ütirin.
Ortalama bir eƒüitim kampƒ± mezunu, bir eƒüitim kampƒ±na ba≈ülamaktan ilk i≈üini bulmaya kadar, kariyer geçi≈üinde altƒ± aydan daha az zaman harcadƒ±.
Bu kod, adƒ±nda bir yineleyici olu≈üturur. Kurabiye. Verileri bu yineleyiciden geçirdiƒüinizde yinelenebilir bir nesneye d√∂nu≈üturulecektir. Bu, bir for in d√∂ngusu kullanarak veriler arasƒ±nda d√∂ngu yapabileceƒüiniz anlamƒ±na gelir. Bu koda bakƒ±yor ve gerçekten uzun olduƒüunu du≈üunuyorsanƒ±z, çunku √∂yle.
√úreticiler bu kodu kƒ±saltmamƒ±za yardƒ±mcƒ± olabilir. Yukarƒ±daki yineleyicimiz için bir jenerat√∂r yazalƒ±m:
Kodumuzun boyutu √∂nemli √∂lçude kuçultuldu. Bunun nasƒ±l çalƒ±≈ütƒ±ƒüƒ±nƒ± tartƒ±≈üalƒ±m.
Oluşturucu, dönuş ifadesi yerine getiri anahtar kelimesine sahip bir işlevdir. Getiri ifadeleri bir işlevden bir değer döndurur.
Bir getiri ifadesi ile bir geri d√∂nu≈ü ifadesi arasƒ±ndaki fark, bir geri d√∂nu≈ü ifadesinin bir i≈ülevin çalƒ±≈ümasƒ±nƒ± durdurmasƒ±, verim ifadesinin ise i≈ülevi duraklatƒ±p devam etmesidir. yineleniyor.
Basit olu≈üturucu i≈ülevimizi yinelemeye çalƒ±≈üalƒ±m:
Kodumuz şunu döndurur:
Ahududu
< p>Raspberry
…
Bu kod, biz programƒ± durdurana kadar tekrar etmeye devam eder. Bunun nedeni, çalƒ±≈ütƒ±rƒ±lan bir while
d√∂ngusu kullanmamƒ±zdƒ±r. Bu çoƒüu durumda pek kullanƒ±≈ülƒ± deƒüildir. Bir eylem gerçekle≈ütirildiƒüinde duran bir ureteç yazalƒ±m.
Python Oluşturucu Nasıl Yazılır
Bir konsola yazdƒ±rmak istediƒüimiz çerezlerin listesi. Bu liste ≈üuna benzer:
["Raspberry‚", "Choc-Chip‚", "Cinnamon‚", &ldquo ;Yulaf‚"]
Bunlarƒ± konsola yazdƒ±rmak için, basit bir jenerat√∂r yedim. Yeni bir Python dosyasƒ± a烱n ve a≈üaƒüƒ±daki kodu yapƒ±≈ütƒ±rƒ±n:
Olu≈üturucumuz, belirlediƒüimiz listedeki her çerezi inceler ve her bir çerezi ayrƒ± ayrƒ± d√∂ndurur. Bu jenerat√∂r henuz çalƒ±≈ümƒ±yor. √úzerinde yineleme yapmak için bir for d√∂ngusu kullanmalƒ±yƒ±z:
cookie_list, d√∂rt çerezin bir listesini saklar. Ardƒ±ndan, cookie_list
içindeki deƒüerler arasƒ±nda yineleme yapmak için olu≈üturucumuzu kullanan bir for d√∂ngusu kurduk.
For d√∂ngumuzdeki her yineleme için, olu≈üturulan nesne yazdƒ±rƒ±lƒ±r. konsola:
Ahududu
"Python.Engineering hayatıma en ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra, hayattaki değerlerim ve hedeflerim ile uyumlu ruya işim!"
Venus, Rockbot’ta Yazƒ±lƒ±m Muhendisi
Choc-Chip
Tar烱n
Yulaf
Başardık! Bu oluşturucu, cookie_list
değişkenindeki her değer yinelenene kadar değerleri döndurur.
Üreticilerin bir dizi kullanım durumu vardır. Diyelim ki, toplamak istediğimiz bir sipariş fiyatları listemiz var. Bunu aşağıdaki kodu kullanarak yapabiliriz:
Bu oluşturucu, bir liste. Her bir öğe tekrarlandıktan sonra, uretici siparişlerin mevcut toplam değerini verecektir. Jeneratörumuzu kullanan bir for döngusu yazalım:
Kodumuz şunu döndurur:
Oluşturucumuz order_list değişkenindeki tum siparişlerin kumulatif değerini hesapladı. Listedeki her yineleme yeni kumulatif değeri döndurur.
Jeneratörleri yazmak bir yineleyiciden zaten daha kolay. Jeneratör ifadeleri sayesinde daha temiz kod yazma arayışımızın durmasına gerek yok.
Yinelenen bir for döngusu oluşturalım. ifade:
Bu olu≈üturucunun yanƒ±tƒ±, ilk √∂rneƒüimizdekiyle aynƒ±dƒ±r. S√∂zdizimimiz √∂nemli √∂lçude daha a烱ktƒ±r.
Bir olu≈üturucu ifadesi kullanƒ±larak bildirilen bir olu≈üturucu uzerinde yineleme yaptƒ±ƒüƒ±nƒ±zda, onu bir i≈ülev olarak çaƒüƒ±rmadƒ±ƒüƒ±nƒ±zƒ± unutmamak √∂nemlidir. cookie_generator
olu≈üturucumuz hiçbir giri≈ü deƒüerini kabul etmez: cookie_list
listesi uzerinde yinelemesi gereken kodu zaten içerir.
Yapmanƒ±z gereken ureteç ifadeleri s√∂zdizimini yalnƒ±zca basit bir i≈ülev gerçekle≈ütiren bir ureteç yazmanƒ±z gerektiƒüinde kullanƒ±n. Bir deƒüerler listesi yazdƒ±rmak buna iyi bir √∂rnektir; Bir listedeki deƒüerleri belirli bir sayƒ± ile çarpmak da ba≈üka bir iyi √∂rnektir.
Bunun nedeni, olu≈üturucu ifade s√∂zdiziminin a烱k olmasƒ±na raƒümen, esas olarak tek satƒ±rlƒ± ifadeler için tasarlanmƒ±≈ü olmasƒ±dƒ±r. Olu≈üturucunuz birden fazla kod satƒ±rƒ± kullanacaksa, bunu bu makalede daha √∂nce tartƒ±≈ütƒ±ƒüƒ±mƒ±z s√∂zdizimini kullanarak bir olu≈üturucu i≈ülevi olarak yazƒ±n.