We all have our favorite way of intentionally raising an exception in Python. Some like referencing an undefined variable to get a simple NameError, others might import a module that doesn't exist for a bold ImportError.

But the tasteful exceptioneer knows to reach for that classic computer-confounding conundrum: **1/0** for a satisfyingly descriptive DivisionByZero.

So, when does dividing by 0 not raise DivisionByZero?

Why, when you divide 0 by a Decimal(0), of course!

>>> from decimal import Decimal

>>> Decimal(0) / Decimal(0)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

decimal.InvalidOperation: [<class 'decimal.DivisionUndefined'>]

>>> Decimal(1) / Decimal(0)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

decimal.DivisionByZero: [<class 'decimal.DivisionByZero'>]

The numerator type doesn't seem to matter either:

>>> 0 / Decimal(0)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

decimal.InvalidOperation: [<class 'decimal.DivisionUndefined'>]

"InvalidOperation" just doesn't quite have the same ring to it! Well, they can't all be heroes. :)

You get an undefined error because decimal cannot handle NaNs.

ReplyDeleteIf you do 1 / decimal.Decimal(0) you will get a division by zero error.

Actually, I'm wrong, the decimal package can handle both infinity and NaN.

ReplyDeletea = decimal.Decimal(float('Inf'))

b = decimal.Decimal(float('NaN'))

The operations are just inconsistent, as seems to be the standard in Python…

https://wiesmann.codiferes.net/wordpress/?p=13366

Help full post, lots of information

ReplyDeletezoho aptitude questions

zoho aptitude questions 2019 pdf

zoho c aptitude questions with answers

c aptitude questions for zoho

zoho aptitude questions with answers

zoho c aptitude questions with answers pdf

zoho aptitude questions 2017 pdf

zoho digital marketing aptitude questions

zoho aptitude questions 2018 pdf

zoho technical support aptitude questions