Когда я проверяю переменную '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