开发者

Python function prints None [duplicate]

This question already has answers here: Why is "None" printed after my function's output? (7 answers) 开发者_开发知识库 Closed 2 years ago.

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 =)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜