【发布时间】:2021-12-09 02:54:54
【问题描述】:
我要解决的问题似乎很简单:取 2 个整数输入,user_num 和 div_num,然后将它们分开,然后使用 try/except 块捕获异常。语言是 python。
对于除以零,输出:除零异常:整数除或模除以零
假设输入 user_num=15.5 和 div_num=5,对于 ValueError,输出如下:输入异常:int() 的无效文字,基数为 10:'15.5'
这个问题也给了我们这个: 注意:当发生被零除时会抛出 ZeroDivisionError 。当用户输入与程序中定义的数据类型不同的值时,将引发 ValueError。不要在程序中包含任何抛出异常的代码
计算和除以零按预期工作,但我的 ValueError 异常不起作用。我理解错误(我定义了一个整数,但给了它一个浮点数),但我对如何让程序做我需要的事情感到困惑。这是我所拥有的:
user_num=int(input())
div_num=int(input())
try:
print(int(user_num/div_num))
except ZeroDivisionError:
print("Zero Division Exception: integer division or modulo by zero")
except ValueError:
print("Input Exception: invalid literal for int() with base 10:", user_num)
我得到的错误是:
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'
任何帮助将不胜感激使 ValueError 异常工作
【问题讨论】:
-
您需要将
try/except放在input()调用周围,而不是除法。 -
回溯显示错误是由转换触发的,在try块之外。
-
修复了它,非常感谢!我现在更了解这一点
标签: python exception try-catch