المكررات Python3 والمولدات الكهربائية
مكرر
التكرار هو واحد من أقوى السمات بيثون هو وسيلة للوصول إلى عناصر المجموعة. .
مكرر هو اجتياز الكائن يمكن أن تذكر الموقع.
كائن مكرر يمكن الوصول إليها من بداية العنصر الأول من المجموعة حتى يتم الوصول إلى إنهاء كافة عناصر تماما. مكرر يمكن أن تتحرك إلى الأمام فقط وليس إلى الوراء.
مكرر لديها طريقتين أساسيتين: ايتر () وبعد ذلك ().
ويمكن استخدام سلسلة أو قائمة أو الصفوف (tuple) كائنات لإنشاء مكرر:
>>> list=[1,2,3,4] >>> it = iter(list) # 创建迭代器对象 >>> print (next(it)) # 输出迭代器的下一个元素 1 >>> print (next(it)) 2 >>>
كائن مكرر يمكن استخدامها لبيان اجتياز التقليدي:
#!/usr/bin/python3 list=[1,2,3,4] it = iter(list) # 创建迭代器对象 for x in it: print (x, end=" ")
البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:
1 2 3 4
يمكنك أيضا استخدام الدالة التالية ():
#!/usr/bin/python3 import sys # 引入 sys 模块 list=[1,2,3,4] it = iter(list) # 创建迭代器对象 while True: try: print (next(it)) except StopIteration: sys.exit()
البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:
1 2 3 4
مولد كهربائي
في بيثون، وذلك باستخدام وظيفة العائد يعرف باسم مولد (مولد).
الفرق هو أنه مع وظيفة عادية، ومولد وظيفة عودة مكرر يمكن أن تستخدم إلا عمليات متكررة، أكثر بساطة لفهم البناء هو مكرر.
الدعوة هو مولد تشغيل هذه العملية، سوف اجه ظيفة العائد وقفة في كل مرة وحفظ كافة المعلومات العاملة الحالية، وقيمة العائد من المحصول. متابعة تشغيل من الموقع الحالي وتنفيذ المقبل المقبل طريقة ().
يستخدم المثال التالي العائد أدركت الأعمدة فيبوناتشي:
#!/usr/bin/python3 import sys def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True: try: print (next(f), end=" ") except StopIteration: sys.exit()
البرنامج المذكور أعلاه، نتائج الإخراج هي كما يلي:
0 1 1 2 3 5 8 13 21 34 55