尝试除非两个输入相同
try except if two inputs are the same
我目前有一个 while 循环,如下所示:
while True:
try:
entry1 = input("input the first number")
entry2 = input("enter the second number")
break
except ValueError:
print("number must be valid re-enter")
我想添加代码,如果用户决定输入两个相同的数字,将重新提示用户输入两个不同的数字。我尝试使用以下内容:
while True:
try:
entry1 = input("input the first number")
entry2 = input("enter the second number")
break
except ValueError:
print("number must be valid re-enter")
try:
if entry1 == entry2:
raise ValueError
else:
break
except ValueError as err:
print("The two numbers cant be the same. re-enter two unique numbers!"
不幸的是,这不起作用。有谁知道我的代码出了什么问题?
对于您所描述的内容,您不需要所有这些例外情况。例如,您可以只使用比较作为 while 循环的条件:
entry1 = entry2 = 0
while entry1 == entry2:
entry1 = input("input the first number")
entry2 = input("enter the second number")
if entry1 == entry2:
print("The two numbers can't be the same. re-enter two unique numbers!")
编辑:
当然,将输入转换为 int 并在不起作用时捕获错误是有意义的。可能是这样的:
entry1 = entry2 = 0
while entry1 == entry2:
try:
entry1 = int(input("input the first number"))
entry2 = int(input("enter the second number"))
if entry1 == entry2:
print("The two numbers can't be the same. re-enter two unique numbers!")
except ValueError:
print("Please enter valid numbers")
break
调用不正确。太多 try-except
块。
while True:
try:
entry1 = input("input the first number: ")
entry2 = input("enter the second number: ")
except ValueError:
print("number must be valid re-enter.")
if entry1 == entry2:
print("The two numbers cant be the same. re-enter two "
"uniquen numbers!")
else :
break
您可以使用 assert
方法来确保 2 个输入不同,如果不同,则用 AssertionError
捕获。
while True:
try:
entry1 = int(input("input the first number"))
entry2 = int(input("enter the second number"))
assert entry1 != entry2
break
except ValueError:
print("number must be valid re-enter")
except AssertionError:
print("The two numbers cant be the same. re-enter two unique numbers!")
我目前有一个 while 循环,如下所示:
while True:
try:
entry1 = input("input the first number")
entry2 = input("enter the second number")
break
except ValueError:
print("number must be valid re-enter")
我想添加代码,如果用户决定输入两个相同的数字,将重新提示用户输入两个不同的数字。我尝试使用以下内容:
while True:
try:
entry1 = input("input the first number")
entry2 = input("enter the second number")
break
except ValueError:
print("number must be valid re-enter")
try:
if entry1 == entry2:
raise ValueError
else:
break
except ValueError as err:
print("The two numbers cant be the same. re-enter two unique numbers!"
不幸的是,这不起作用。有谁知道我的代码出了什么问题?
对于您所描述的内容,您不需要所有这些例外情况。例如,您可以只使用比较作为 while 循环的条件:
entry1 = entry2 = 0
while entry1 == entry2:
entry1 = input("input the first number")
entry2 = input("enter the second number")
if entry1 == entry2:
print("The two numbers can't be the same. re-enter two unique numbers!")
编辑: 当然,将输入转换为 int 并在不起作用时捕获错误是有意义的。可能是这样的:
entry1 = entry2 = 0
while entry1 == entry2:
try:
entry1 = int(input("input the first number"))
entry2 = int(input("enter the second number"))
if entry1 == entry2:
print("The two numbers can't be the same. re-enter two unique numbers!")
except ValueError:
print("Please enter valid numbers")
break
调用不正确。太多 try-except
块。
while True:
try:
entry1 = input("input the first number: ")
entry2 = input("enter the second number: ")
except ValueError:
print("number must be valid re-enter.")
if entry1 == entry2:
print("The two numbers cant be the same. re-enter two "
"uniquen numbers!")
else :
break
您可以使用 assert
方法来确保 2 个输入不同,如果不同,则用 AssertionError
捕获。
while True:
try:
entry1 = int(input("input the first number"))
entry2 = int(input("enter the second number"))
assert entry1 != entry2
break
except ValueError:
print("number must be valid re-enter")
except AssertionError:
print("The two numbers cant be the same. re-enter two unique numbers!")