3

我已经定义了这个函数,它接受一个单词和一串必需的字母,如果单词至少使用了所有必需的字母,则返回 True。当我运行它时,它给了我正确的输出,但我不明白为什么它也输出“无”。

这是我的代码:

 def uses_all(word, allused):
    boolean = False
    for e in allused:
        if e in word:
            boolean = True
        else:
            boolean = False
            break 
    print boolean 

print uses_all('facebook', 'd')

输出:

False
None

对我哪里出错的评论将不胜感激。

4

3 回答 3

7

你的程序打印booleanFalse,所以你知道它是从哪里来的。

如果一个函数没有显式返回任何东西,它会自动返回 None,当你使用

print uses_all('facebook', 'd')

您要求它打印uses_all返回的内容,即无。因此:

False
None

顺便说一句,我认为你的功能可以更简洁地写成

def uses_all(word, allused):
    return all(e in word for e in allused)

可以提高效率,但这对于政府工作来说应该足够了。all函数非常方便(另请参见 参考资料)any

于 2012-09-17T19:57:35.743 回答
5

因为uses_all()没有return语句。如果你从函数返回一个值,它将被打印而不是 None,当然除非你return None:)

于 2012-09-17T19:57:41.813 回答
0

您打印函数的结果,但函数没有return任何作用(--> 无)

如果您希望结果为False False,请添加return boolean函数。

或者,如果一个False就足够了,您可以更改print uses_all('facebook', 'd')uses_all('facebook', 'd')

于 2012-09-17T19:57:20.080 回答