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):
Ok, to start off when you do this:
print(jiskya(2, 3))
You getting something pretty much equivalent to this:
print(print(2))
So, what is going on? The print(2)
is printing out 2, and returns None
which is printed by the outer call. Straightforward enough.
Now look at this:
def hello():
return 2
If you do:
print(hello())
You get 2 because if you print out a function you get whatever the return
value is. (The return
value is denoted by the return someVariable
.
Now even though print
doesn't have parenthesis like most functions, it is a function just a little special in that respect. What does print return? Nothing. So when you print print someVariable
, you will get None
as the second part because the return value of print is None
.
So as others have stated:
def jiskya(x, y):
if x > y:
print(y)
else:
print(x)
Should be re-written:
def jiskya(x, y):
if x > y:
return y
else:
return x