如果尝试输入的数字不是4个数字长,则尝试使用try-except结构停止该程序。我真的不明白为什么如果我输入2或3位数字,它会跳过except块。感谢所有帮助。
guess = int(input('Guess a 4 digit number:\n'))
guesslist = [int(x) for x in (str(guess))]
x = 0
y = 0
try:
print(len(str(guess)))
len(str(guess)) == 4
except:
print('please enter a 4 digit number')
quit()
print('past')
答案 0 :(得分:0)
尝试将assert
添加到len(str(guess)) == 4
。
原因是仅仅拥有assert len(str(guess)) == 4
是没有用的-可以运行,但是您没有告诉Python对结果做任何事情。如果您len(str(guess)) == 4
,则基本上意味着验证下一个代码是否为真,否则抛出异常。
答案 1 :(得分:0)
try
/ except
语法捕获异常(又称错误)。如果try
子句中的代码未引发任何错误,则跳过except
子句。您的try
子句中没有任何明显的错误。
首先,执行try子句(try和except关键字之间的语句)。 如果没有异常发生,则将跳过except子句,并结束try语句的执行。
改为使用if
/ then
条件语法:
if len(str(guess)) == 4:
print(len(str(guess)))
else:
print('please enter a 4 digit number')
quit()
答案 2 :(得分:0)
您需要引发异常才能触发例外。像这样尝试:
guess = int(input('Guess a 4 digit number:\n'))
guesslist = [int(x) for x in (str(guess))]
x = 0
y = 0
try:
print(len(str(guess)))
if(len(str(guess)) != 4):
raise Exception("Invalud number")
except:
print('please enter a 4 digit number')
quit()
print('past')