I have defined this function that takes a word and a string of required letters and that returns True if the word uses all the required letters at least once. When I run this, it gives me the correct output but I do not understand why it also outputs ‘None’.
Here is my code:
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')
Output:
False
None
Comments on where I have gone wrong will be appreciated.
Your program prints
boolean, which is False, so you know where that comes from.If a function doesn’t return anything explicitly, it automatically returns None, and when you use
you’re asking it to print what
uses_allreturns, which is None. Hence:BTW, I think your function could be more concisely written as
Could make it more efficient, but that should be good enough for government work. The all function is really handy (see also
any).