我制作了一个函数,用于验证用户在输入中提供的两个变量。我有两个问题:
- 在函数
break
中给我和错误:break
外部循环。我修不好 - 如果输入被发送到函数,当它失败时,我如何将其发送回输入以供用户重新输入
请找到以下代码:
def testify(arg_test):
while True:
i = arg_test
try:
i == int(i)
except ValueError as e:
print ("Enter valid int value")
else:
break
return arg_test
number_1 = input("Write first number: ");
number_2 = input("Write second number: ");
arg_number_1 = testify(number_1);
arg_number_2 = testify(number_2);
您的代码中存在缩进问题,请查看此修复程序:
def testify(arg_test):
i = arg_test
try:
int(i) # This is sufficient to test if arg_test could be parsed as an integer
return arg_test
except ValueError as e:
new_input = input("Enter valid int value")
return testify(new_input)
编辑:将我的答案更改为使用递归函数来检查用户的新输入。
首先,我最确定的问题是:2(在try except
错误后重新输入变量。
我只会做以下代码:
else:
break()
testify(arg_test)
我不太确定的第一个问题是break
函数,因为它很少被我使用!但我想说:尝试缩进try
和except
循环,使其位于while True:
循环下方
像这样:
def testify(arg_test):
while True:
i = arg_test
try:
i == int(i)
except ValueError as e:
print ("Enter valid int value")
else:
break
testify(arg_test)
return arg_test
希望这能有所帮助!