проблема pangram из exorcism.io, python track, почему мое решение не работает? - PullRequest
0 голосов
/ 12 апреля 2020
def is_pangram(sentence):
    alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    sentence = sentence.lower()
    for x in alf:
        if x not in sentence:
            return False
        else:
            return True

Мой код не может вернуть True во всех случаях, когда это необходимо.

Я использую режим mentored на exercism.io, но трек python переподписан и обеспечивает обратную связь только с основными упражнения.

Я надеюсь, что мастер python может указать мне на мои ошибки. Большое спасибо ....

1 Ответ

0 голосов
/ 12 апреля 2020

Задача - проверить, содержит ли предложение все буквы алфавита. Таким образом, хотя вы можете определить, что не случай (то есть return false), когда вы найдете первую букву, которой нет в предложении, вы не можете утверждать обратное (то есть * 1008) *) пока вы не проверили все буквы.

def is_pangram(sentence):
    alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    sentence = sentence.lower()
    for x in alf:
        if x not in sentence:
            return False
    return True

Приложение : Существует также python - только малоизвестная и редко используемая for/else языковая функция см. Документы : * У циклов 1020 * может быть предложение else, которое вызывается, когда l oop выходит "нормально" (то есть без остановки рано из-за break, return или исключения). Это делает следующий код жизнеспособной альтернативой. Обратите внимание на различные отступы в предложении else по сравнению с кодом OP.

def is_pangram(sentence):
    alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    sentence = sentence.lower()
    for x in alf:
        if x not in sentence:
            return False
    else:
        return True
...