השישי זה בנובמבר,חמישי בינואר

בחמישי זה נובמבר, קורה לי מקרה מוזר מאוד בלי ששיניתי את הקוד… הוא לא מקפיץ לי value error על הכנסת ערך שלא נמצא ברשימה?
מה הסיבה להתנהגות הזאת?החזרתי את הקוד למה שהיה בהתחלה בלי שום try

לייק 1

תוכל להדביק פה את הקוד שלא שינית?

דרך אגב איתחלתי את הקרנל וניקיתי אאוטפוטים…

    "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December",
]


def get_month_name(index):
    """Return the number of the month and return its name."""
    return MONTHS[index - 1]


def get_month_ordinary_number(name):
    """Return the month ordinary number by its name."""
    return MONTHS.index(name) + 1


def is_same_month(index, name):
    return (
        get_month_name(index) == name
        and get_month_ordinary_number(name) == index
    )
is_same_month(4, "April1")
...

כן, מגניב. אני יכול לראות למה זה קורה.
שים לב שאם יש לך ביטוי בוליאני מסוג x and y ו־x הוא False, פייתון מנסה להיות יעילה ולא תריץ את y

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

לעשות מה שכתוב בהוראות, זה לא משפיע עליהן באמת.
אם אתה רוצה לבדוק בקלות שזה עובד, אתה יכול להוציא את 2 החלקים מהצדדים של ה־and, כל אחד למשתנה נפרד, ואז לעשות return x and y. ככה תדאג ששניהם יתבצעו בלי קשר ל־and