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 thi
Because uses_all()
doesn't have a return statement. If you return a value from the function, it will be printed instead of None, unless of course you return None
:)
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
print uses_all('facebook', 'd')
you're asking it to print what uses_all
returns, which is None. Hence:
False
None
BTW, I think your function could be more concisely written as
def uses_all(word, allused):
return all(e in word for e in allused)
Could make it more efficient, but that should be good enough for government work. The all function is really handy (see also any
).
You print the result of the function, but the function doesn't return
anything (--> None)
If you want the result to be False False
, add return boolean
in the function.
Alternatively, if a single False
is enough, you could change print uses_all('facebook', 'd')
to just uses_all('facebook', 'd')