Menu
Coddy logo textTech

איטרטור טווח מותאם אישית

שיעור 10 מתוך 13 בקורס איטרטורים ב-Python של Coddy.

challenge icon

אתגר

קל

צרו מחלקת איטרטור מותאמת אישית בשם StepRange שמייצרת רצף מספרים עם גודל צעד מותאם אישית. האיטרטור הזה צריך לחקות את ההתנהגות של הפונקציה המובנית range() של Python, אך עם גמישות רבה יותר בגדלי הצעדים.

המחלקה StepRange צריכה:

  • לקבל את הפרמטרים start, stop ו-step בבנאי שלה
  • לממש את המתודה __iter__() כך שתחזיר את אובייקט האיטרטור עצמו
  • לממש את המתודה __next__() כדי לייצר את הערך הבא ברצף
  • לטפל בגדלי צעד חיוביים ושליליים
  • להעלות חריגה מסוג StopIteration כשהרצף מסתיים

לאחר מימוש המחלקה StepRange, צרו ממנה מופע באמצעות ערכי הקלט והדפיסו כל מספר שנוצר בשורה חדשה.

הקלט הבא יסופק:

  • שלושה מספרים שלמים המופרדים ברווחים, המייצגים את start, את stop ואת step

נסו בעצמכם

# קראו את הקלט
start, stop, step = map(int, input().split())

class StepRange:
    def __init__(self, start, stop, step):
        self.start = start
        self.stop = stop
        self.step = step
        self.current = start

    def __iter__(self):
        return self

    def __next__(self):
        # TODO: ממשו את המתודה __next__()
        pass

# צרו מופע של StepRange
step_range = StepRange(start, stop, step)

# TODO: עברו על StepRange והדפיסו כל ערך
# זכרו להדפיס כל ערך בשורה חדשה

כל השיעורים ביחידה איטרטורים ב-Python

תרגלו בעצמכם: קומפיילר Python אונליין