是否可以在使用try / except进行异常处理时包含一个类似于我的布尔表达式?
例如:
while True:
try:
grade = float(input('Please enter your your score:'))
break
except ValueError:
print('Please enter a numeric value, you dingus!')
except (grade > 1):
print('Not a valid number, please re-enter:')
except NameError:
print('Please enter a numeric value, you dingus!')
我希望字符串输入由除NameError之外的'处理。'我希望通过打印来处理大于1的数字,而不是有效的数字,请重新输入:'
按原样,程序按预期处理字符串和有效的数字输入。但是,当我输入大于1的数字时,程序接受我的输入并且不做任何其他操作。否命令执行,并且没有任何内容传递给此异常处理代码段下面的函数。该程序刚刚停止,没有给出任何错误来帮助调试。
答案 0 :(得分:3)
试一试:
while True:
try:
grade = float(input('Please enter your your score:'))
if grade > 1:
raise ValueError
except ValueError:
print('Not a valid number, please re-enter.')
except NameError:
print('Please enter a numeric value, you dingus!')
except SyntaxError:
print('Please enter something, anything!?')