Python function prints None [duplicate]
I have the following exercise:
The parameter weekday is True if it is a weekday, and the parameter vacation is True if we are on vacation. We sleep in if it is not a weekday or we're on vacation. Return True if we sleep in.
Here's what I've done, but the second print function only prints 'None'
.
def sleep_in(weekday, vacation):
if(not weekday or vacation):
return True
print(sleep_in(False, False))
print(sleep_in(True, False))
print(sleep_in(False, True))
Output:
True
None
True
Functions in python return None
unless explicitly instructed to do otherwise.
In your function above, you don't take into account the case in which weekday is True
. The interpreter reaches the end of the function without reading a return statement (since the condition predecing yours evaluates to False
), and returns None
.
Edit:
def sleep_in(weekday, vacation):
return (not weekday or vacation)
There you go =)
精彩评论