功能打印正确输出和无

Hum*_*mus 3 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')
Run Code Online (Sandbox Code Playgroud)

输出:

False
None
Run Code Online (Sandbox Code Playgroud)

关于我出错的地方的评论将不胜感激.

DSM*_*DSM 7

您的程序打印boolean,这是假的,所以你知道它来自哪里.

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

print uses_all('facebook', 'd')
Run Code Online (Sandbox Code Playgroud)

你要求它打印什么uses_all返回,这是无.因此:

False
None
Run Code Online (Sandbox Code Playgroud)

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

def uses_all(word, allused):
    return all(e in word for e in allused)
Run Code Online (Sandbox Code Playgroud)

可以提高效率,但这对政府工作应该足够好.将所有的功能是非常方便的(见any).


AJ.*_*AJ. 5

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