如果 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 语句进行类似更改。
当我对输入说 "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 语句进行类似更改。