# Why does modulo return None rather than 0?

Another problem, why does modulo return `None` rather than 0? Is there a way to convert `None` to 0?

Can you give an example? If you do `3%3`, it should return `0`.

``````# Write your lots_of_math function here:
def lots_of_math(a, b, c, d):
print(str(a + b))
print(str(d - c))
print(str((a + b) * (d - c)))
print(str(((a + b) * (d - c)) % a))
# Uncomment these function calls to test your lots_of_math function:
print(lots_of_math(1, 2, 3, 4))
# should print 3, -1, -3, 0
print(lots_of_math(1, 1, 1, 1))
# should print 2, 0, 0, 0

``````
``````3
1
3
0
None
2
0
0
0
None
``````

I just noticed that the 0 is there, but I don’t know why there is a “None”

The reason `None` appears at the end is because your `lots_of_math` function does have any `return` value, so it is automatically given the value of `None`. Then, when you print the function:

``````print(lots_of_math(1, 1, 1, 1))
``````

It gets called-so all of the `print` statements inside it print, and then you print the return value. Which is `None`.

5 Likes

Ah ok I understand now.

1 Like

I guess it was irresponsible of me to just put this on my previous post. Sorry about that.

1 Like