Grant Grant -4 years ago 156
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 Source

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)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download