下面的代码对我来说看起来不错,但是当我将 e0 与 except ValueError 一起使用时,它会打印两次,请帮助我迟钝的大脑
我的输入是 20.5 和 5
try:
user_num = int(input())
div_num = int(input())
print(user_num / div_num)
except ValueError as e0:
print('Input Exception: invalid literal for int() with base 10:', e0)
except ZeroDivisionError:
print('Zero Division Exception: integer division or modulo by zero')
输出
Input Exception: invalid literal for int() with base 10: invalid literal for int() with base 10: '20.5'
尝试删除 e0,打印不带 e0 的整个语句,完美打印,但我不能放入 e0,否则由于某种原因它只会打印输出两次。
e0
不是您尝试转换的字符串。 e0
是异常对象。打印,打印异常的消息,异常的消息是"invalid literal for int() with base 10: '20.5'"
。
“以 10 为基数的 int() 的无效文字:”在输出中显示两次,因为您是手动打印它,并且 也 打印包含该文本的异常消息。