"""Quick note!
This code snippet has been copied by Pseudo Balls.
This is the original answer.
Please consider justice by ignoring his answer.
"""
"""assert:
evaluates an expression and raises AssertionError
if expression returns False
"""
assert 1 == 1 # does not raise an error
assert False # raises AssertionError
# gives an error with a message as provided in the second argument
assert 1 + 1 == 3, "1 + 1 does not equal 3"
"""When line 7 is run:
AssertionError: 1 + 1 does not equal 3
"""
x = "hello"
#if condition returns False, AssertionError is raised:
assert x == "goodbye", "x should be 'hello'"
-----------------------------------------------------------------
Traceback (most recent call last):
File "demo_ref_keyword_assert2.py", line 4, in <module>
assert x == "goodbye", "x should be 'hello'"
AssertionError: x should be 'hello'
assert type(num) is int,"num must be an integer"
# AssertionError with error_message.
x = 1
y = 0
assert y != 0, "Invalid Operation" # denominator can't be 0
print(x / y)
The assert keyword is used when debugging code.
The assert keyword lets you test if a condition in your code returns
True, if not, the program will raise an AssertionError.
You can write a message to be written if the code returns False, check
the example below.
x = "hello"
#if condition returns False, AssertionError is raised:
assert x == "goodbye", "x should be 'hello'"
def input_age(age):
try:
assert int(age) > 18
except ValueError:
return 'ValueError: Cannot convert into int'
else:
return 'Age is saved successfully'
print(input_age('23')) # This will print
print(input_age(25)) # This will print
print(input_age('nothing')) # This will raise ValueError which is handled
print(input_age('18')) # This will raise AssertionError, program collapses
print(input_age(43)) # This won't print
x = "aaa"
#if condition returns False, AssertionError is raised:
assert x == "aaa", "x should be 'aaa'"
assert False, "Oh no! This assertion failed!"
# Simple asserting thing, run it by using pytest or something
# If you don't know how to run pytest, then go learn it.
def test_math():
assert(1 + 1 == 2)
# Another way to test it (without pytest) is:
# You could just run the function to see if it makes an error.
# If it doesn't, it means it was fine, if it does, it means there's an error.
# But then again, using pytest or something is much easier and saves time.
# So try to use testing applications instead of running the function to see.
a = 5
assert a == 5 # True
assert a == 42 # False, the program fails
#OUTPUT
Traceback (most recent call last):
File "none.py", line 155, in <module>
assert a == 42
AssertionError