为什么我的 else 语句不运行?

cont = "y"


while cont == "y":

    day = input("Enter today's day: ")


    if day == "monday" or "Monday":

        day = day.upper()

        if day in my_class:

            print ("You have ",my_class[day], " today")


    elif day == "tuesday" or "Tuesday":

        day = day.upper()

        if day in my_class:

            print ("You have ",my_class[day], " today")


    elif day == "wednesday" or "Wednesday":

        day = day.upper()

        if day in my_class:

            print ("You have ",my_class[day], " today")


    elif day == "thursday" or "Thursday":

        day = day.upper()

        if day in my_class:

            print ("You have ",my_class[day], " today")


    elif day == "friday" or "Friday":

        day = day.upper()

        if day in my_class:

            print ("You have ",my_class[day], " today")


    else:

        print ("Enter a valid day")


    cont = input("Type y to continue: ")

如果输入了无效日期,我希望它打印 else 所说的内容,但它会跳到打印“键入 y 以继续:”


白衣非少年
浏览 195回答 1
1回答

扬帆大鱼

问题在于您对or运算符的使用:if day == "monday" or "Monday":被翻译为“是day == "monday"真实的,还是"Monday"真实的?” 因为"Monday"它总是真实的(因为它是一个非空字符串),你总是会得到这个if块。您的 ifs 和 elifs 应该看起来更像:if day == "monday" or day == "Monday":缩短它的一种方法是:if day in ["monday","Monday"]:但是,进行相同检查的更简洁的方法是:if day.lower() == "monday":这将使您的检查不区分大小写。你的其余elif陈述应该做同样的事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python