编写一个函数isAllLettersUsed(word,必需(,该函数将一个单词作为第一个参数,如果该单词包含第二个参数中的所有字母,则返回True。
示例
>>> isAllLettersUsed('apple', 'apple')
True
>>> isAllLettersUsed('apple', 'google')
False
>>> isAllLettersUsed('learning python', 'google')
True
>>> isAllLettersUsed('learning python', 'apple')
True
我正在做的是
def isAllLettersUsed(word, required):
if all(required in word for required in word):
return True
else:
return False
返回的结果是
True
True
True
True
应返回的位置
True
False
True
True
我不明白在这一点上我该怎么办。我尝试了很多事情,但都失败了。有什么建议吗??
看看所需的所有字母是否都在单词中:
def isAllLettersUsed(word, required):
return all(ch in word for ch in required)
通过在for循环中使用required来检查单词中的每个字母是否在单词中,required指的是每个字符,而不是传递的必需参数,因此它总是返回True,因为单词中的每一个字母都必须在单词中。
def isAllLettersUsed(word, required):
if all(req in word for req in required):
return True
else:
return False
发生的情况是,您在for循环中为变量required
赋值,但required
是一个参数。您希望循环使用required
,并将required
的每个元素保存到一个新变量中。然后,检查该元素是否在word中。
此外,如果使用all()
,则if-else
是多余的。只需说return all(...)
更改生成器表达式中变量的名称。您使用循环变量required
遮蔽了名为required
的参数。