Function returns None without return statement

2018-12-31 04:36发布

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?

7条回答
余生请多指教
2楼-- · 2018-12-31 05:39

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))
查看更多
登录 后发表回答