다중도 계산기를 만들었는데 거의 문제가 있습니다. 사용자가 문자열 입력을하면 숫자를 물어볼 때 코드가 끊어 지거나 오류가 발생합니다. if
문에 else:
이 있습니다. 당신이 먼저 유효 확인하기 위해 확인하지 않고, 사용자의 입력에 int
유형을 주장하고 있기 때문에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()
을 시도합니다. 'try/except'를 사용해야합니다. – kindall
당신의 함수를 다시 실행하기 위해 재귀를 사용하지 말 것을 강력하게 권장합니다 ... while 루프를 사용하십시오. –