Latest web development tutorials

المكررات 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