首页 > 解决方案 > 如何忽略以前的输入?

问题描述

我正在尝试用数字创建一个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

标签: pythonpython-3.xwhile-loop

解决方案


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

您的代码不起作用的原因是因为您在检查这是否可能之前尝试将“非数字”(字符串)添加到“数字”(整数),这是在您已经导致错误之后执行的. 如果您移动上面的 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)

推荐阅读