如何忽略先前的输入?

时间:2018-10-20 02:26:55

标签: python python-3.x while-loop

我正在尝试使用数字创建while循环功能。基本上,我的功能是不断增加数字,直到输入一个非数字,然后才能中断循环。但是,当我输入一个非数字输入时,该非数字也会被添加到公式中并导致错误。

如何从方程式中排除非数字?

sum_num = 0

while True:
    num = input("Please input a number: ")
    sum_num = int(sum_num) + int(num)
    if num.isdigit() != True:
        print(sum_num)
        break

2 个答案:

答案 0 :(得分:0)

我将使用try except来捕获错误。这清楚表明您正在避免这种情况。

您的代码无法正常工作的原因是,您尝试在将“ nondigit”(字符串)添加到“ digit”(整数)之前,甚至在检查是否可能的情况下(在已经执行此操作之后)导致了错误。如果您将上述if语句移至您的代码,则将可以正常工作:

sum_num = 0

while True:
    num = input("Please input a number: ")
    if num.isdigit() != True:
        print(sum_num)
        break
    sum_num = int(sum_num) + int(num)

答案 1 :(得分:0)

如果将它包装在try / except中,它应该做您想要的事。

while True:
    num = input("Please input a number: ")
    try:
        sum_num = int(sum_num) + int(num)
    except ValueError as ex:
            print(sum_num)
            break