我正在製作一個多重計算器,而且我幾乎把它關閉了,問題是當我詢問一個數字時,如果用戶給出了一個字符串輸入,代碼就會中斷並拋出一個錯誤,即使對於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'循環。 –