if / else语句中的代码中断

时间:2017-04-17 23:51:38

标签: python calculator

我正在制作一个多重计算器而且我差点把它弄下来,问题是当我要求一个数字时,如果用户给出一个字符串输入,代码就会中断并抛出错误,即使我有一个{{1} } else:语句。

if

2 个答案:

答案 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循环...