功能打印正确输出和无

时间:2012-09-17 19:55:41

标签: python

我已经定义了这个函数,它接受一个单词和一串必需的字母,如果单词至少使用一次所需的字母,则返回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

对我出错的地方的评论将不胜感激。

3 个答案:

答案 0 :(得分:7)

您的程序打印boolean,这是假的,因此您知道它来自哪里。

如果某个函数没有显式返回任何内容,它会自动返回None,并且当您使用

print uses_all('facebook', 'd')

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

False
None

BTW,我认为你的功能可以更简洁地写成

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

可以提高效率,但这对政府工作应该足够好。 all函数非常方便(另请参阅any)。

答案 1 :(得分:5)

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

答案 2 :(得分:0)

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

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

或者,如果单个False足够,您可以将print uses_all('facebook', 'd')更改为uses_all('facebook', 'd')