Coding for KidsCoding for Kids
שלבים יצירתייםאתגריםמדריך למורים
הצבע על תכונות
קורס פיתוח מתקדם בפייתון
פרק
>
רמה

ניהול חריגות
התאמה אישית של מחלקות חריגות

מטרה

ודאו שהמים הגשומים שנאספו מעובדים ומועברים כהלכה על ידי התאמה אישית של מחלקות חריגה.

בקצה הרחוק של המתחם הגגי נמצא מזרק לאגירת מי גשמים, מים אלו מסוננים ומועברים ברחבי הבניין למטרות שונות. שסתומים על הקיר העליון מווסתים את לחץ המים הזורם, ובינתיים המאגר האחרון מאכסן מספר מחממי מים. הפעלת מכונות יכולה להיות מסובכת, אולם תפעולם יכולה להיות יעילה יותר על ידי פירוט קודי שגיאה והקמת צעדים מתקנים אפקטיביים. זאת מושגת על ידי התאמה אישית של מחלקות החריגה שאתם יוצרים עבור החריגות המותאמות שלכם.

ישנן שתי מחלקות חריגה מותאמות אישית שהוגדרו בעורך הקוד; יכולתכם להשתמש בהן תהיה חיונית לאיתור תקלות במכונות שתיתקלו בהן. הראשונה היא חריגה לטיפול בבעיות לחץ המים. היא נועדה לשימוש עם השסתומים כדי לוודא שהמים זורמים כראוי לתוך המתחם או שהלחץ צריך להיות מותאם. בהתאם לכך, אם הלחץ מתחת ל־100 או מעל 300, תינקט פעולה שונה על ידי החריגה; הלחץ מועבר כארגומנט שהמשתמש חייב לספק. ברגע שהיא מופעלת, מוצג חלון קופץ מותאם המכיל קוד שגיאה והודעה.

class PressureError(Exception): def __init__(self, pressure, message="Water pressure is offset, pressure is: ", error_code=404): self.pressure = pressure self.message = message self.error_code = error_code super().__init__(self.message) async def __str__(self): await player.write("[Error: %s {%s %s}]" % (self.error_code , self.message, self.pressure)) if self.pressure < 100: return ("Valve has been closed") if self.pressure > 360: return ("Valve has been opened")

המחלקה השנייה היא חריגה מותאמת אישית שמטרתה לווסת את הטמפרטורה במחממי המים. אם הטמפרטורה נמוכה מדי או גבוהה מדי, עליכם להזין טמפרטורה חדשה כארגומנט על מנת לתקן את השגיאה ברגע שהיא מתרחשת.

class TemperatureError(Exception): def __init__(self, temp, message="Temperature is not appropiate, enter new temperature: ", error_code=808): self.temp = temp self.message = message self.error_code = error_code super().__init__(self.message) async def __str__(self): await player.write("[Error: %s {%s %s}]" % (self.error_code , self.message, self.temp)) return ("Temperature Corrected")

כדי להתחיל, לכו אל סימן האיקס הבהיר על השטיח הירוק ופנו למיכל עם השסתום. ישנם ארבעה (4) שסתומים המווסתים את לחץ המים הנשאבים מהמיכל. קיימים ארבעה (4) קבועים משתנים: green_pressure, red_pressure, blue_pressure ו- orange_pressure, אשר מייצגים את הלחץ בכל אחד מהמיכלים התואמים לשטיחים הצבעוניים.

על כל סימני האיקס הבהירים, השתמשו בסדרת קודי try/except ו-else כדי לבדוק אם הלחץ בכל מיכל הוא מתאים. אם הלחץ נמוך מ־100 או גבוה מ־300, יש להרים את החריגה המותאמת PressureError ולהעביר את הלחץ כארגומנט. במידה והיא מופעלת, תעלה שגיאה עם קוד ותבוצע תיקון; אחרת, יתבצע סעיף ה-else המאשר את תקינות הלחץ במיכל. לדוגמה:

try: if green_pressure < 100 or green_pressure > 360: raise PressureError(green_pressure) except PressureError as x: player.speak(x) else: player.speak( "Pressure is appropriate" )

בצעו את זה על כל סימני האיקס הבהירים, תוך שימוש בקבועים המשתנים התואמים לכל אחד מהשטיחים הצבעוניים ובדיקת התאמת השסתומים ללחץ הנדרש.

לאחר שסיימתם, לכו אל סימן האיקס הזהוב והשתמשו בפונקציה open() כדי לגשת לאחסון שבו נמצא מחמם המים. כעת, בתוך האחסון, לכו אל סימן האיקס הזהוב שבתוכו והשתמשו בפונקציה read() כדי לקרוא את הפתק שעל הדלפק. פתק זה יספק לכם מידע על הטמפרטורה האידיאלית לכל אחד ממחממי המים.

לאחר שיש בידיכם את המידע על כל הטמפרטורות, עברו לסימן האיקס הכהה שמעל השטיח הסגול. כאן נשתמש בסדרת קודי try/except ו-else כדי לבדוק אם מחממי המים נמצאים בטמפרטורה הנכונה. קיימים ארבעה (4) קבועים משתנים נוספים המשויכים לשטיחים הצבעוניים: purple_temperature, yellow_temperature, pink_temperature ו- white_temperature.

בסדרה נבדוק אם הטמפרטורה נמוכה מ־100; במקרה כזה, נעלה את החריגה TemperatureError. כחריגה מותאמת אישית, היא מקבלת ארגומנט; במקרה זה עליכם להזין את הטמפרטורה שנקראה בפתק כדי להפעיל את אמצעי התיקון הנדרש. לדוגמה:

try: if purple_temperature < 100: raise TemperatureError(120) except TemperatureError as x: player.speak(x) else: player.speak( "Temperature is ok" )

בצעו זאת עבור כל מחממי המים: על כל סימן איקס, בעודכם מול המחממים, הריצו את הסדרה תוך שימוש בקבועים המשתנים התואמים לשטיחים הצבעוניים הנכונים כדי להשלים את הרמה.

ספר קוד