Short answer: You get none because you asked it. But this is not very useful information :-)
With outside print() you're asking Python to print the value returned by the inside print() function. Since print function prints and don't have return part then None is returned by default. The None is the return value of the all functions which don't return (or yield) anything.
>>> def test():
... pass
...
>>> print(test())
None
>>> def why():
... print('Why?')
...
>>> print(why())
Why?
None
It's good practice to write functions which always return something explicitly and then print it if needed:
>>> def why():
... return "Why?"
...
>>> print(why())
Why?
>>> print(f"{why()} It doesn't make sense.")
Why? It doesn't make sense.