我得到了 ZeroDivisionError 异常的分数,但没有得到 ValueError 异常的分数....不确定我的异常语句有什么问题。在我的菜鸟眼中,它看起来是正确的。如有任何帮助,我们将不胜感激。
LAB:简单整数除法 - 多个异常处理程序
编写一个程序,读取整数 user_num 和 div_num 作为输入,并且 输出商(user_num 除以 div_num)。使用 try 块 执行所有语句。使用 except 块来捕获任何 ZeroDivisionError 并输出异常消息。使用另一个除了 阻止捕获由无效输入引起的任何 ValueError 并输出 异常消息。
注意:当除以零时,会抛出 ZeroDivisionError 。 当用户输入不同数据类型的值时抛出 ValueError 比程序中定义的内容。不要包含抛出任何异常的代码 程序中出现异常。
例如:如果程序的输入是:
15
3
程序的输出是:
5
例如:如果程序的输入是:
10
0
程序的输出是:
Zero Division Exception: integer division or modulo by zero
例如:如果程序的输入是:
15.5
5
程序的输出是:
Input Exception: invalid literal for int() with base 10: '15.5'
我的代码:
user_num = int(input())
div_num = int(input())
if isinstance(user_num,int) == False:
problem = user_num
elif isinstance(div_num,int) == False:
problem = div_num
try:
result = user_num/div_num
print(int(result))
except ZeroDivisionError:
print("Zero Division Exception: integer division or modulo by zero")
except ValueError:
print("Input Exception: invalid literal for int() with base 10: '{}'".format(problem))
输入程序输入(可选)
15.5
5
此处显示程序错误
Traceback (most recent call last):
File "main.py", line 1, in <module>
user_num = int(input())
ValueError: invalid literal for int() with base 10: '15.5'
1:比较输出 2 / 2
输入
15
3
你的输出
5
2:比较输出 2 / 2
输入
15
0
你的输出
Zero Division Exception: integer division or modulo by zero
3:比较输出0 / 2
Traceback (most recent call last):
File "main.py", line 1, in <module>
user_num = int(input())
ValueError: invalid literal for int() with base 10: '15.5'
输入
15.5
5
你的输出 你的程序没有产生输出
预期产量
Input Exception: invalid literal for int() with base 10: '15.5'
4:比较输出0 / 1
Traceback (most recent call last):
File "main.py", line 2, in <module>
div_num = int(input())
ValueError: invalid literal for int() with base 10: '0.5'
输入
25
0.5
你的输出
Your program produced no output
预期产量
Input Exception: invalid literal for int() with base 10: '0.5'
5:比较输出0 / 1
Traceback (most recent call last):
File "main.py", line 1, in <module>
user_num = int(input())
ValueError: invalid literal for int() with base 10: 'twenty'
输入
twenty
5
你的输出
Your program produced no output
预期产量
Input Exception: invalid literal for int() with base 10: 'twenty'
6:比较输出 1 / 1
输入
0
4
你的输出
0
7:比较输出 1 / 1
输入
15
0
你的输出
Zero Division Exception: integer division or modulo by zero
user_num = int(input())
和 div_num = int(input())
需要进入 try/except ValueError
块,因为对 int()
的调用可能会发生错误。
您可以将整个内容放入
try/except
并捕获多个异常:
try:
user_num = int(input())
div_num = int(input())
result = user_num/div_num
print(int(result))
except ValueError as e1:
print(e1)
except ZeroDivisionError as e2:
print(e2)
甚至:
try:
user_num = int(input())
div_num = int(input())
result = user_num/div_num
print(int(result))
except (ValueError, ZeroDivisionError) as e:
print(e)
如果您想打印“错误”,而不必输入原始帖子中的整个句子,请查看此片段。我确保用楼层除法运算符“//”来除 number1 和 number2,以获得作业要求的正确消息。希望这有帮助!
# Type your code here.
try:
number1 = int(input())
number2 = int(input())
answer = number1 // number2
print(int(answer))
# Exceptions #
except ZeroDivisionError as ZDE:
print('Zero Division Exception:', ZDE)
except ValueError as VE:
print('Input Exception:',VE)