I faced an error when I run my program using python: The error is like this:
ZeroDivisionError: division by zero
My program is similar to this:
In [55]:
x = 0
y = 0
z = x/y
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-55-30b5d8268cca> in <module>()
1 x = 0
2 y = 0
----> 3 z = x/y
ZeroDivisionError: division by zero
Thus, I want to ask, how to avoid that error in python. My desired output is z = 0
The Python "ZeroDivisionError: float division by zero" occurs when we try to divide a floating-point number by 0 . To solve the error, use an if statement to check if the number you are dividing by is not zero, or handle the error in a try/except block.
00:11 In mathematics, division by zero is undefined and it will cause a Python program to crash if you attempt it.
In mathematics, division by 0 is undefined. Because of this, Python will issue the above error when your code tries to accomplish this undefined expression.
Any number divided by zero gives the answer “equal to infinity.” Unfortunately, no data structure in the world of programming can store an infinite amount of data. Hence, if any number is divided by zero, we get the arithmetic exception .
Catch the error and handle it:
try: z = x / y except ZeroDivisionError: z = 0
Or check before you do the division:
if y == 0: z = 0 else: z = x / y
The latter can be reduced to:
z = 0 if y == 0 else (x / y)
Or if you're sure y
is a number, which implies it`s truthy if nonzero:
z = (x / y) if y else 0 z = y and (x / y) # alternate version
Returning zero instead of the division by zero error can be accomplished with a Boolean operation.
z = y and (x / y)
Boolean operations are evaluated left to right and return the operand, not True
or False
.
If y
is 0
, the value returned is y
. If y
is different from 0
, the right side of the operation is executed and the value returned is x / y
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With