Пока цикл не перезапускается, пока True - PullRequest
0 голосов
/ 11 ноября 2019

Когда я проверяю переменную 'invalid', это показывает, что это True. Но цикл while не перезапускает код. Код проверяет совпадения между двумя списками. Если в 'users_word' есть буквы, которых нет в 'random_word', цикл while должен перезапуститься и заставить пользователя ввести новое слово. Но когда я ввожу слово, которое сделает «недействительным» True, цикл не перезапустится

def get_users_word():
    global invalid
    while invalid:
        invalid = False
        print(random_word)
        users_word_list = []
        user_word = input('Enter a word ')
        print(user_word)
        counter = 0
    # Checking user entered appropriate number of letters in their words
    # Checking the users word doesnt contain too many occurrences of a single letter
        if user_word.isalpha() and 10 > len(user_word) > 0:

            for letter in user_word:
                users_word_list.append(letter)

            while counter < 26:
                for letter in alphabet_for_counting:
                    if users_word_list.count(letter) <= random_word.count(letter):
                        counter += 1
                    elif users_word_list.count(letter) > random_word.count(letter) :
                        print(f'{letter} occur not equal')
                        invalid = True
                        counter += 1
            return user_word
        else:
            print('invalid word')
            invalid = True

1 Ответ

0 голосов
/ 11 ноября 2019

BusyBear обратил мое внимание на то, что цикл while прерывался / не перезапускался, потому что в конце у меня было выражение return.

...