while 循环中的 ValueError 异常处理:仅重复错误的输入

发布于 2025-01-16 21:20:07 字数 459 浏览 0 评论 0原文

我希望下面的代码要求用户在 while 循环中输入两个整数,处理 ValueError 异常,如果一切顺利则打印总和。

我的问题是,如果第一个数字通过而第二个数字没有通过,它会要求重新输入第一个数字。

在这种情况下如何才能只提示第二个输入?

while True:

try:
    number_1 = int(input("enter the first number: "))
    number_2 = int(input("enter the second number: "))
except ValueError:
    print("please enter numbers only!")
    
else:
    result = number_1 + number_2
    print(f" {number_1} + {number_2} = {result}")

非常感谢!

I would like the following code to ask the user -in a while loop- to input two integers, handle ValueError Exception, and if all well to print the sum.

My problem is that if the first number passes and the second doesn't, it asks to input the first one all over again.

How do I get it in this case to prompt the second input only?

while True:

try:
    number_1 = int(input("enter the first number: "))
    number_2 = int(input("enter the second number: "))
except ValueError:
    print("please enter numbers only!")
    
else:
    result = number_1 + number_2
    print(f" {number_1} + {number_2} = {result}")

Many thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤云独去闲 2025-01-23 21:20:07

也许编写一个小函数来请求用户输入并处理 ValueError 在这里会很方便,并且是一个很好的实践。

示例:

def get_input(show_text:str):
    while True:
        try:
            number = int(input(show_text))
            break
        except ValueError:
            print('Enter number only!') 
    return number


number_1 = get_input('enter the first number: ')
number_2 = get_input('enter the second number: ')
result = number_1 + number_2
print(f" {number_1} + {number_2} = {result}")

示例输出

enter the first number: 1
enter the second number: a
Enter number only!
enter the second number: f
Enter number only!
enter the second number: 2
 1 + 2 = 3

Probably writing a small function to request user for input and handle the ValueError would come handy in here and would be a good practice to use.

Example:

def get_input(show_text:str):
    while True:
        try:
            number = int(input(show_text))
            break
        except ValueError:
            print('Enter number only!') 
    return number


number_1 = get_input('enter the first number: ')
number_2 = get_input('enter the second number: ')
result = number_1 + number_2
print(f" {number_1} + {number_2} = {result}")

Example output

enter the first number: 1
enter the second number: a
Enter number only!
enter the second number: f
Enter number only!
enter the second number: 2
 1 + 2 = 3
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文