如果 else 函数不能正常工作

If else function does not working correctly

当我对输入说 "n" 或 "no" 时如果工作正常但是当我对输入说 "y" 或 "yes" 时它只是做同样的事情对于 "no"。除此之外,程序中的其他所有内容都可以完美运行。我完全不知道为什么会这样。

def restart():
    replay = input("Do you want to restart? (Y/N): ")
    if replay.lower() == "n" or "no":
        print("exiting")
        sys.exit()
    if replay.lower() == "y" or "yes":
        calc()
    else:
        print("Unknown Command")
        restart()
restart()

替换为:

    if replay.lower() == "n" or "no":
        print("exiting")
        sys.exit()
    if replay.lower() == "y" or "yes":
        calc()

有了这个:

    if replay.lower() == "n" or replay.lower() == "no":
        print("exiting")
        sys.exit()
    if replay.lower() == "y" or replay.lower() == "yes":
        calc()

您的 if 语句中的条件并未按照您认为的方式进行评估。当你使用像 or 这样的逻辑运算符时,它首先计算 or 之前的部分,然后计算 or 之后的部分,如果其中一个为真,则整个语句为真。

所以不用

if replay.lower() == "n" or "no": #always runs because just "no" evaluates as being true

使用

if replay.lower() == "n" or replay.lower == "no":

并对测试为是的 if 语句进行类似更改。