ZeroDivisionError: as 'integer division or modulo by zero' but get as 'division by zero
ZeroDivisionError: as 'integer division or modulo by zero' but get as 'division by zero
我想得到 ZeroDivisionError 的异常:如 'integer division or modulo by zero',但我得到的是 'division by zero'。我怎样才能得到它?
a=int(input())
b=[]
for i in range(a):
b.append(list(input().split()))
try:
print(int(int(b[i][0])/int(b[i][1])))
except Exception as e:
print( "Error Code: ", e)
Python 例外是 ZeroDivisionError
:
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
如果您正在尝试处理异常,请执行以下操作:
except ZeroDivisionError as e:
而不是尝试匹配异常描述。
如果此答案无法满足您的需求,请详细说明您的需求和原因,以便我们为您提供帮助。
PS 一种完成您似乎要问的事情的天真的方法:
>>> try: 1/0
... except ZeroDivisionError:
... raise ZeroDivisionError('integer division or modulo by zero')
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
ZeroDivisionError: integer division or modulo by zero
我确定您有理由想要特定的错误消息(也许是为了理解 float
与 int
的区别)所以我会解决这个问题。
即使只有一个除以零的异常 (ZeroDivisionError
),它也会根据使用的类型和涉及的操作给出不同的错误消息。
如果您尝试获取整数除法异常消息 ("integer division or modulo by zero"
),则需要专门使用 //
而不是 /
来执行整数除法。在除法之前或之后使用 int()
将数字转换为整数不会使 /
执行整数除法。
作为错误消息如何根据所涉及的类型而变化的示例:
>>> 5 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 5.0 / 0.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero
>>> 5 // 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>> 5.0 // 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float divmod()
以上内容属于 Python 3. /
在 Python 2 中分母为零的两个 int
对象的除法将导致 "integer division or modulo by zero"
消息。
我想得到 ZeroDivisionError 的异常:如 'integer division or modulo by zero',但我得到的是 'division by zero'。我怎样才能得到它?
a=int(input())
b=[]
for i in range(a):
b.append(list(input().split()))
try:
print(int(int(b[i][0])/int(b[i][1])))
except Exception as e:
print( "Error Code: ", e)
Python 例外是 ZeroDivisionError
:
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
如果您正在尝试处理异常,请执行以下操作:
except ZeroDivisionError as e:
而不是尝试匹配异常描述。
如果此答案无法满足您的需求,请详细说明您的需求和原因,以便我们为您提供帮助。
PS 一种完成您似乎要问的事情的天真的方法:
>>> try: 1/0
... except ZeroDivisionError:
... raise ZeroDivisionError('integer division or modulo by zero')
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
ZeroDivisionError: integer division or modulo by zero
我确定您有理由想要特定的错误消息(也许是为了理解 float
与 int
的区别)所以我会解决这个问题。
即使只有一个除以零的异常 (ZeroDivisionError
),它也会根据使用的类型和涉及的操作给出不同的错误消息。
如果您尝试获取整数除法异常消息 ("integer division or modulo by zero"
),则需要专门使用 //
而不是 /
来执行整数除法。在除法之前或之后使用 int()
将数字转换为整数不会使 /
执行整数除法。
作为错误消息如何根据所涉及的类型而变化的示例:
>>> 5 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 5.0 / 0.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero
>>> 5 // 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>> 5.0 // 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float divmod()
以上内容属于 Python 3. /
在 Python 2 中分母为零的两个 int
对象的除法将导致 "integer division or modulo by zero"
消息。