Grant Grant - 1 month ago 17
Python Question

Random 'None' output from basic python function

I just learned(am learning) how function parameters work in python, and I started experimenting with it for no apparent reason, when this:

def jiskya(x, y):
if x > y:
print y
else:
print x

print jiskya(2, 3)


gave the ouput:

>>>
2
None


Where did the 'None' come from? And what is it?

Answer

It's the return value of the function, which you print out. If there is no return statement (or just a return without an argument), an implicit return None is added to the end of a function.

You probably want to return the values in the function instead of printing them:

def jiskya(x, y):
    if x > y:
        return y
    else:
        return x

print jiskya(2, 3)