ריצת 2000 - בדיקה ללא ביצוע הדפסה

תגיות:

לגבי הדוגמא למשל שהפונקציה timer מקבלת פונקצית print -
יש דרך להימנע מהדפסת הערכים?
במיוחד כדי להימנע ממספר לא מבוטל של הדפסות אם בודקים את הממוצע של הרצת הפונקציה לאורך מספר רב של פעמים

לייק 1

אפשר להגדיר לפני הפונקציה:

def print(*args, **kwargs):
    pass

ובכך לדרוס את print.
מילת המפתח pass זו מילה שלא למדנו; היא אומרת “אל תעשה כלום”.
אפשר במקומה גם לשים סתם return 0, נניח.

2 לייקים

האם אנו נדרשים להמנע מהדפסת ערכים?
דריסה של print משנה את אופי הבדיקה של זמן הריצה שלה.

לא, אין דרישה שכזו…

רגע היינו אמורים לבדוק ממוצע של ריצות? בתרגיל כתוב רק שהפונקציה timer תמדוד כמה זמן רצה הפונקציה f

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

אבל הכל יוצא 0 אצלי לדוגמא :man_shrugging:
לפחות אם אני עושה 2000 פעמים ואז מחלק את התוצאה ב2000 הדוגמא הראשונה והאחרונה נותנות מספר כלשהו קטן ככל שיהיה (למרות שנראלי שהראשונה מחזירה מספר ממש כי זה ממש מדפיס 2000 פעמים וזה תופס זמן)

ניסיתי להוסיף את זה כפונקציה לפני הפונציה שלי כי החלטתי להריץ 2000 פעמים ולקחת ממוצע אחרת הכל יוצא 0, אבל בפועל זה פשוט גרם לזה שהפונקציה של לא תעשה כלום (פשוט נעצרה)
וגם כשניסיתי לכתוב return 0 אז פשוט קיבלתי output של 0, במקום שהפוקנציה שלי תחזיר זמן כלשהו

הזמן שלוקח לזה לבצע כל ריצה הוא פיפס שלא שמים לב, גם אם יוצא 0 עגול זה היגיוני

אז עדיף להחזיר שיעשה זמן לריצה בודדת וזהו?
עדיין מעניין אותי למה לא עובד לי הדריסה של הprint כמו שצריך :frowning:

אתה יכול להכניס תנאי בתוך הפונקציה שאם הפונקציה שהיא מקבלת כפרמטר היא print שתעשה pass