while循环中的ValueError异常处理:只重复错误的输入
ValueError Exception Handling in a while loop: Repeat only wrong input
我想要以下代码要求用户 - 在 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}")
非常感谢!
可能编写一个小函数来请求用户输入并处理 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
我想要以下代码要求用户 - 在 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}")
非常感谢!
可能编写一个小函数来请求用户输入并处理 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