Булева мини-программа Python для игры в палач - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь создать программу для игры в палач, и она разбита на несколько маленьких кусочков. Предполагается, что этот конкретный блок возвращает «True», если буквы секретного слова находятся в пределах угаданных букв, и false, если хотя бы одна из букв секретного слова отсутствует в угаданных буквах. Я не знаю, что я делаю неправильно, потому что мой код не всегда дает правильный ответ. Спасибо за вашу помощь!

def isWordGuessed(secretWord, lettersGuessed):
    for letter in secretWord:
        if letter not in lettersGuessed:
            return False
        else:
            return True

1 Ответ

0 голосов
/ 12 мая 2018

В настоящее время ваш цикл возвращает True на первом letter в lettersGuessed.Вам нужно перебрать все буквы перед возвратом True, например:

def isWordGuessed(secretWord, lettersGuessed):
    for letter in secretWord:
        if letter not in lettersGuessed:
            return False
    else:
        return True

В этом конкретном случае вам не нужно выражение else: в цикле for, поскольку это эквивалентнодо:

def isWordGuessed(secretWord, lettersGuessed):
    for letter in secretWord:
        if letter not in lettersGuessed:
            return False
    return True

Или вы можете использовать функцию all():

def isWordGuessed(secretWord, lettersGuessed):
    return all(letter in lettersGuessed for letter in secretWord)
...