我正在制作一个多重计算器而且我差点把它弄下来,问题是当我要求一个数字时,如果用户给出一个字符串输入,代码就会中断并抛出错误,即使我有一个{{1} } else:
语句。
if
答案 0 :(得分:0)
您收到错误是因为您在用户的输入上声明了int
类型,而没有检查以确保它首先有效。正如@kindall在comment中指出的那样,try/except
允许您捕获失败的类型断言并优雅地处理它们。用以下内容包装您的int
演员应该可以解决问题:
try:
multiplicity = int(input("How many common multiplicities you would like to find between two numbers: "))
except ValueError as e:
print('Please input a valid number')
return str(e)
(请注意,您可能只是重复提示而不是返回错误文本。)
答案 1 :(得分:0)
当前代码的一个快速修复是创建一个函数来获取输入或无效值(如果它不是int
def input_positive_integer(message):
while(True):
try:
value = int(input(message))
if (value<=0 or value > 100000 ):
raise ValueError("Not in range")
break
except ValueError as e:
print("Value error!! Try again!")
然后,您可以更改接收整数的所有输入以使用此功能。
请注意,它将保持循环,直到值有效。
我真的建议你避免对该代码进行递归,尝试使用简单的while循环...