Python

Why Use Assertion

And, what is the difference between raising normal errors and assertions? Basically:

Raising ErrorAssertion
Raise ValueError('Input not in range [1, 10]')assert 1 <= v <= 10
Intended for usersIntended for developers
Happens when user action is illegalHappens when code contains bug
To signal to user to take a different course of actionTo easily find where code starts to error
Cannot and should not be disabledCan be disabled during compilation,
therefore should not be used in logics like data validation

Standard