def isWordGuessed(secretWord, lettersGuessed):
'''
secretWord: string, the word the user is guessing
lettersGuessed: list, what letters have been guessed so far
returns: boolean, True if all the letters of secretWord are in lettersGuessed;
False otherwise
'''
# FILL IN YOUR CODE HERE...
for i in lettersGuessed:
if i in secretWord:
return True;
else:
return False;
print(isWordGuessed('banana', ['z', 'x', 'q', 'b', 'a', 'n', 'a', 'n', 'a']))
print(isWordGuessed('apple', ['a', 'e', 'i', 'k', 'p', 'r', 's']))
答案 0 :(得分:2)
return
离开函数 - 您需要确保其中包含“所有”字母。 Ý你只检查一个字母,然后你离开你的功能是真还是假。
修正:
检查是否所有内容都在其中:
def isWordGuessed(secretWord, lettersGuessed):
'''
secretWord: string, the word the user is guessing
lettersGuessed: list, what letters have been guessed so far
returns: boolean, True if all the letters of secretWord are in lettersGuessed;
False otherwise
'''
return all(l in lettersGuessed for l in secretWord)
如果all()
(或any()
)为True,则Python内置一个很好的内置函数。
你颠倒了逻辑种类 - 如果你的secretWord的所有字母都在lettersGuessed列表中,你将返回True。
如果您将“Banana”作为秘密猜测["B","a","n"]
,这将返回true - 它不会检查“金额”是否合适。
Dokumentation:all()
答案 1 :(得分:1)
由于secretWord
中的每个字母都应该在lettersGuessed
中,假设重复不计(问题中未定义),您可以检查secretWord中的字母集是否包含在字母组中的字母集如下:
def isWordGuessed(secretWord, lettersGuessed):
secretWordSet = set(secretWord)
return secretWordSet & set(lettersGuessed) == secretWordSet
答案 2 :(得分:1)
你做的与方法描述所说的完全相反
你在做什么:检查猜测列表中的每个字符是否都在保密字中
你应该做什么:检查字符串中的每个字符是否都在列表中
cmd
应该是函数的内容