פילטר מותאם אישית

טוב אז אחרי שקראתי לעומק טוב טוב את התיעוד של פונקציית filter, עדיין לא מבין למה אני מקבל את השגיאה:
TypeError: ‘NoneType’ object is not callable
עברתי עם דיבגר, והעלתי אץ התרגיל כבר 14 פעמיים, עדיין לא מבין איפה יש לי None type, ניסיתי את התרגיל עם פונקציית generator ועם פונקציה שמחזירה רשימה, אך עדיין אני לא מבין למה אני מקבל את השגיאה הזאת…
מה גם שהפונקציה עובדת ועושה מה שצריך:confused:

היא עושה את מה שהיא אמורה בחלק מהמקרים. ממליצה להריץ במחברת את המילה “טריק” וכך לאתר את המקרה שעליו הפונקציה שלך נופלת

לייק 1

מה הכוונה “להריץ במחברת”?

לחפש את המילה הזו במחברת, היא תוביל אותך לדוגמא שעליה הקוד שלך נופל ככה"נ

תודה!
יודעת מה השגיאה הזו אומרת?
AssertionError: פלט לא תקין כאשר מעבירים את None כפונקציה assert [True] == [1, True, ‘test’] Right contains 2 more items, first extra item: True Use -v to get the full diff

זה אומר שהפונקציה שלך לא עובדת כמו שצריך כששולחים לה None. תפעיל את filter ותפעיל את my_filter על הרשימה שיש בדוגמא שציינתי ותדאג שבשני המקרים יתקבלו אותם ערכים

למה “Hello” שקול ל-True?

כדאי לחזור למחברת - יש שם הסבר ממש על זה

איזו מחברת?
??<<<<<<

המחברת שבה מוסבר על filter ומה היא מחזירה

קראתי ולא הצלחתי להבין. אשמח להסבר :slight_smile:

אם אתה מתכוון למה קורה עם None, התכוונתי לדוגמא הזו


כלומר אם שולחים לפונקציה שלך None הקוד עלול להקפיץ שגיאה אם הוא נכתב בצורה הלא נכונה.
אם השאלה שלך היא אחרת אשמח לשאלה ממוקדת יותר :slight_smile:

כן הבנתי את זה מהתגובה הקודמת שלך :slight_smile: השאלה היא: למה המילה “Hello” נחשבת True?

לצערי אני לא יודעת להסביר למה, אבל מאמינה שיש בגוגל תשובה לשאלה הזו.
מה שאני יודעת זה שכל מבני הנתונים הבסיסיים (רשימה, טאפל, מילון, סט, מחרוזת) ממופים ל-False אם ורק אם הם ריקים, וגם 0, 0.0 ו-None ממופים ל-False.

אני מקבל תוצאה זהה כשאני מריץ את הפונקציה שלי ואת filter אבל הבודק האוטומטי עדין אומר שיש שגיאה:
AssertionError: פלט לא תקין כאשר מעבירים את None כפונקציה assert [1, True, , ‘test’] == [1, True, ‘test’] At index 2 diff: != ‘test’ Left contains one more item: ‘test’ Use -v to get the full diff

רשימה ריקה ממופה ל-False ואצלך היא עברה את הסינון

תודה רבה! :heart:
///////