我正在制作一个多重计算器,而且我几乎把它关闭了,问题是当我询问一个数字时,如果用户给出了一个字符串输入,代码就会中断并抛出一个错误,即使对于if
声明,我有一个else:
。if/else语句中的代码打破
def Start():
numberOneList = []
numberTwoList = []
multiples = 100000
iterations = 0
multiplicity = int(input("How many common multiplicities you would like to find between two numbers: "))
if multiplicity > 0 and multiplicity < 100001:
numberOne = int(input("Input the first number: "))
if numberOne > 0 and numberOne < 100001:
numberTwo = int(input("Input the second number: "))
if numberTwo > 0 and numberTwo < 100001:
for i in range(multiples):
mNumberOne = numberOne * i
numberOneList.append(mNumberOne)
mNumberTwo = numberTwo * i
numberTwoList.append(mNumberTwo)
print("")
print("Common multiplicities:")
print("")
print("Calculating...")
print("")
for i in numberOneList:
for a in numberTwoList:
if a == i:
if a != 0:
print(numberOne, "x", i/numberOne, "=", i)
print(numberTwo, "x", a/numberTwo, "=", a)
print("")
iterations += 1
if iterations == multiplicity:
Again()
else:
continue
else:
continue
else:
continue
else:
print("Invalid answer, restarting")
Start()
else:
print("Invalid answer, restarting")
Start()
else:
print("Invalid answer, restarting")
Start()
def Again():
calculateAgain = input("Calculate again? [y/n]: ")
if calculateAgain == "y":
Start()
if calculateAgain == "n":
quit()
else:
Again()
Start()
这是因为'else'语句无关捕捉错误。你需要使用'try/except'。 – kindall
我强烈建议不要使用递归来再次运行你的函数......使用'while'循环。 –