שגיאת בודק אוטומטי, פילטר מותאם אישית מחברת 2

אם אתה כותב בקוד שלך בדיוק את כל קטעי הקוד שכתובים במחברת בחלק של ()filter, אבל מחליף את הפונקציה ()filter ב-()my_filter. הכל עובד?

מסתבר שבטעות הרצתי ללא שינוי ל-my_filter ובגלל זה יצא פלט תקין.
בכל מקרה, אני לא יודע למה, אבל כשאני מריץ בלולאת for:
if: item == True
בפונקציה sum הוא לא מחשיב לי שום תוצאה כ-True, וכשהפוקנציה היא None הוא לא מחשיב לי את “Hello” כ-True.
בפונקציה is_positive הפלט יוצא תקין

תנסה להבין מה True אומר, אילו דברים יחזירו לך אמת ואילו שקר.
תנסה להבין למה התוצאות שלך יוצאות בקבוצת האפשרויות שמחזירה שקר.
אגב, אני מניחה שהנקודותיים סתם הודפסו לך באמצע כאן ולא בסוף התנאי ב"if: item == True", בכל מקרה סתם שתדע שיש דרך קצרה יותר לכתוב את השורה הזו.

בסוף נפל לי האסימון.
ממש תודה רבה!!! התגובה האחרונה ממש עזרה להבין מה היה חסר לי בקוד

זה מה שעשיתי, ואעדיין יש שגיאה
TypeError: ‘NoneType’ object is not callable

בדקת לפי התיעוד (או המחברת לצורך העיניין) מה קורה אם לא מגדירים פונקציה ל filter? מה קורה אצלך במצב הזה?

לייק 1

None of it is making sense
:wink:

לייק 1

הי
מה הבעיה כאן?

מה השגיאה אומרת?..

אם הייתי מבינה לא הייתי שואלת… :smile:
ברור שיש בעיה עם הset אבל איזו?

הassert אומר שהוא נכשל בהשוואה בין מה שהפונקציה שלך מחזירה, בצד שמאל, למה שהיא אמורה להחזיר, בצד ימין. מה ההבדל בין שני הצדדים?

מקווה שזה לא ספוילר, אבל, מה שעשיתי זה להפוך מחרוזת, ל SET ולהחזיר את ה SET מהפונקציה ( והתרגיל עבד )
אז מה אני מפספסת?

הי
אני בטוחה שהכוונה שלך טובה ובטח יש כאן משהו שאני מפספסת אבל התשובה שלך מתסכלת… עדיין אני לא מבינה מה לא בסדר…
image

האם רשימה וסט הן אותו דבר? איך נראה ההבדל ביניהם ?
אם זה גם לא עוזר תריצי את הפקודה

type()

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

2 לייקים

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

הבעיה היא לא שחוזר NoneType, מה שנאמר שם זה שמנסים לקרוא ל-NoneType, כלומר שאיפשהו בקוד יש a() כלשהו שמתורגם כ-None() מכיוון ש-a==None. נסה לחשוב באיזה מקרים זה יכול לקרות (מדברים על זה איפשהו במחברת)

לייק 1

שורות 6-8 בלינק ששלחת

אה… רשימה ולא סט… עכשיו הבנתי
תודה רבה!!!

אני כל כך מיואש שאני שוקל להתייאש…

אחרי קריאה חוזרת ונשנית בשרשור פה ובערך מלאנתלפים תיקונים, אני מקבל את זה
AssertionError: פלט לא תקין כאשר מעבירים את None כפונקציה assert [1, 0, True, …, , '', …] == [1, True, 'test'] At index 1 diff: 0 != True Left contains 4 more items, first extra item: False Use -v to get the full diff

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

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