所以我正在用python做一个计算器,我在while循环中有它的代码,并提示询问用户是否要重新启动程序(while循环是为了什么),但它没有似乎工作正常,我缺少什么吗?我对编程有点陌生,所以也许有些公然的错误我根本没有看到。 (我没有添加完整的代码,但确实导入了必要的库(“ sys”和“ math”))
var1 = True
while var1 == True:
op = eval(input("\n Your operation: "))
print(f"\n The result would be: {op}")
var2 = input("\n Would you like to do another operation? If so type yes: ")
if var2 != "yes" or "Yes" or "YES" or "y" or "Y" or "1":
print("\n Ok then, exiting... \n")
sys.exit()
因此,如果用户在提示符下键入“ yes”,则应重新启动程序,但无论如何条件都不会执行,它仍将执行if语句并关闭程序。
我尝试添加这样的“ else”语句:
if var2 != ... :
sys.exit()
else:
print("Restarting...")
但它似乎也不起作用。
我还尝试了另一种方法,即不检查它是否不匹配,而是检查它是否匹配。像这样:
if var2 == ... :
print("Restarting...")
else:
sys.exit()
但这只是陷入了while循环中,并没有关闭程序。
我只是看不出代码有什么问题。
正确的做法是:
if var2.lower() not in ("yes", "1"):
print("Ok then, exiting...")
sys.exit()
答案 0 :(得分:0)
您的逻辑是倒退的,如果它是ISNT,则需要退出,而不是使用或(加上您使用不正确)使用in,而不是键入是的所有不同变体,请使用star.lower()
:
var1 = True
while var1 == True:
op = eval(input("\n Your operation: "))
print(f"\n The result would be: {op}")
var2 = input("\n Would you like to do another operation? If so type yes: ")
if var2.lower() not in ("yes", "1"):
print("\n Ok then, exiting... \n")
sys.exit()