دروس بايثون

بايثون هوم مقدمة بايثون ابدأ بايثون بناء جملة بايثون تعليقات بايثون متغيرات بايثون أنواع بيانات بايثون أرقام بايثون صب بايثون سلاسل بايثون بايثون منطقية مشغلي بايثون قوائم بايثون Python Tuples مجموعات بايثون قواميس بايثون بيثون إذا ... آخر بايثون أثناء التكرار بايثون للحلقات وظائف بايثون بيثون لامدا صفائف بايثون فئات / كائنات بايثون وراثة بايثون تكرارات بايثون نطاق بايثون وحدات بايثون تواريخ بايثون الرياضيات بايثون Python JSON لغة Python RegEx Python PIP بايثون جرب ... ماعدا مدخلات مستخدم بايثون تنسيق سلسلة Python

التعامل مع الملف

التعامل مع ملف بايثون ملفات قراءة بايثون Python كتابة / إنشاء ملفات بايثون حذف الملفات

وحدات بايثون

برنامج NumPy التعليمي تجول الباندا البرنامج التعليمي Scipy

بيثون ماتبلوتليب

مقدمة ماتبلوتليب ابدأ Matplotlib Matplotlib Pyplot ماتبلوتليب بالتآمر علامات Matplotlib خط ماتبلوتليب تسميات Matplotlib شبكة Matplotlib المؤامرات الفرعية Matplotlib مبعثر Matplotlib قضبان ماتبلوتليب الرسوم البيانية Matplotlib المخططات الدائرية Matplotlib

التعلم الالي

ابدء يعني وضع متوسط الانحراف المعياري النسبة المئوية توزيع البيانات توزيع البيانات العادي مؤامرة مبعثر الانحدارالخطي الانحدار متعدد الحدود الانحدار المتعدد حجم تدريب / اختبار شجرة القرار

Python MySQL

ابدأ MySQL MySQL إنشاء قاعدة بيانات إنشاء جدول MySQL إدراج MySQL حدد MySQL MySQL أين ترتيب MySQL حسب حذف MySQL جدول إسقاط MySQL تحديث MySQL حد MySQL انضم إلى MySQL

Python MongoDB

ابدأ MongoDB MongoDB إنشاء قاعدة بيانات MongoDB إنشاء مجموعة إدراج MongoDB البحث عن MongoDB استعلام MongoDB نوع MongoDB MongoDB يحذف مجموعة MongoDB Drop تحديث MongoDB حد MongoDB

مرجع بايثون

نظرة عامة على بايثون وظائف بايثون المضمنة طرق سلسلة بايثون طرق قائمة بايثون طرق قاموس بايثون طرق Python Tuple طرق تعيين بايثون طرق ملف بايثون كلمات بايثون استثناءات بايثون مسرد بايثون

مرجع الوحدة

وحدة عشوائية وحدة الطلبات وحدة الإحصاء وحدة الرياضيات وحدة cMath

كيف بايثون

إزالة قائمة التكرارات عكس سلسلة أضف عددين

أمثلة بايثون

أمثلة بايثون مترجم بايثون تمارين بايثون مسابقة بايثون شهادة بايثون

تكرارات بايثون


تكرارات بايثون

المكرر هو كائن يحتوي على عدد قابل للعد من القيم.

المكرر هو كائن يمكن التكرار عليه ، مما يعني أنه يمكنك اجتياز جميع القيم.

من الناحية الفنية ، في Python ، المكرر هو كائن يقوم بتنفيذ بروتوكول المكرر ، والذي يتكون من الأساليب __iter__() و __next__().


التكرار مقابل التكرار

القوائم ، المجموعات ، القواميس والمجموعات كلها كائنات قابلة للتكرار. إنها حاويات متكررة يمكنك الحصول على مكرر منها.

كل هذه الكائنات لها iter()طريقة تُستخدم للحصول على مكرر:

مثال

أعد مكررًا من مجموعة ، واطبع كل قيمة:

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

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

حتى السلاسل هي كائنات قابلة للتكرار ، ويمكنها إرجاع مكرر:

مثال

السلاسل هي أيضًا كائنات قابلة للتكرار ، وتحتوي على سلسلة من الأحرف:

mystr = "banana"
myit = iter(mystr)

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

التكرار من خلال مكرر

يمكننا أيضًا استخدام forحلقة للتكرار خلال كائن قابل للتكرار:

مثال

كرر قيم tuple:

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

for x in mytuple:
  print(x)

مثال

كرر أحرف سلسلة:

mystr = "banana"

for x in mystr:
  print(x)

تنشئ forالحلقة في الواقع كائنًا مكررًا وتنفذ الطريقة () التالية لكل حلقة.



قم بإنشاء مكرر

لإنشاء كائن / فئة كمكرر ، يجب عليك تنفيذ الأساليب __iter__()والكائن __next__()الخاص بك.

كما تعلمت في فصل Python Classes / Objects ، تحتوي جميع الفئات على وظيفة تسمى __init__()، والتي تتيح لك القيام ببعض التهيئة عند إنشاء الكائن.

تعمل __iter__()الطريقة بشكل مشابه ، يمكنك إجراء عمليات (تهيئة وما إلى ذلك) ، ولكن يجب دائمًا إرجاع كائن المكرر نفسه.

تسمح __next__()لك الطريقة أيضًا بإجراء عمليات ، ويجب أن تعيد العنصر التالي في التسلسل.

مثال

قم بإنشاء مكرر يقوم بإرجاع الأرقام ، بدءًا من 1 ، وسيزيد كل تسلسل بمقدار واحد (بإرجاع 1،2،3،4،5 وما إلى ذلك):

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))

توقف

سيستمر المثال أعلاه إلى الأبد إذا كان لديك ما يكفي من العبارات التالية () ، أو إذا تم استخدامه في forحلقة.

لمنع استمرار التكرار إلى الأبد ، يمكننا استخدام StopIterationالعبارة.

في __next__()الطريقة ، يمكننا إضافة شرط إنهاء لإثارة خطأ إذا تم التكرار لعدد محدد من المرات:

مثال

توقف بعد 20 مرة:

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)