Python 程序如何以及何时达到“返回真值”?
这是一个作业的代码,这段代码是正确的,但是我在第二次尝试时使用了它,但我不知道我的理解是否正确:Python 程序如何以及何时达到“返回真值”?,python,python-3.x,Python,Python 3.x,这是一个作业的代码,这段代码是正确的,但是我在第二次尝试时使用了它,但我不知道我的理解是否正确: def isWordGuessed(secretWord, lettersGuessed): ''' secretWord: string, the word the user is guessing lettersGuessed: list, what letters have been guessed so far returns: boolean, True i
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 secretWord:
if i not in lettersGuessed:
return False
return True
因此,如果返回True在循环之外,则只有secretWord中的每个字母都在循环中时才会返回True,但如果缺少一个字母,则会立即返回False。这是正确的吗
谢谢 右侧-这相当于:
all(lett in lettersguessed for lett in secretword)
请注意,由于列表或字符串的成员资格测试处于启用状态,因此如果您有一个相对较大的secretword,则其速度可能会更快:
这是因为测试集合中的成员身份是在固定时间O1中完成的,因此构建集合的成本超过了对成员身份检查的许多调用
像往常一样,在这些边缘优化中,强烈建议在进行任何更改之前进行分析。是的,没错。您可以说,如果缺少一个单词,它会立即返回False。但如果有一个字母丢失,它会立即返回False。如果我写的是一封信,不让任何人在读这个函数时绊倒,那会好得多。。。我读了好几遍才明白。是的,你是对的,这应该行得通。
def is_word_guessed(secretword, lettersguessed):
guessed_set = set(lettersguessed)
return all(lett in guessed_set for lett in secretword)