我已经定义了这个函数,它接受一个单词和一串必需的字母,如果单词至少使用一次所需的字母,则返回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
对我出错的地方的评论将不胜感激。
答案 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')