почему команда "break" выдаёт ошибку?(Python)
код:
import random
def handman():
print("Добро пожаловать в игру 'Виселица'!")
word_list = ['мандарин', 'яблоко', 'груша', 'виноград', 'апельсин', 'манго']
secret = random.choice(word_list)
guesses = 'м,я,г,в,а,м'
turns = 5
while turns > 0:
missed = 0
for letter in secret:
if letter in guesses:
print (letter,end=' ')
else:
print ('_',end=' ')
missed += 1
if missed == 0:
print ('\nТы выйграл!')
break
guess = input('\nНазовите букву: ')
guesses += guess
if guess not in secret:
turns -= 1
print ('\Не угадал.')
print ('\n', 'Осталось попыток:', turns)
if turns < 5: print ('\n | ')
if turns < 4: print (' O ')
if turns < 3: print (' /|\ ')
if turns < 2: print (' | ')
if turns < 1: print (' / \ ')
if turns < 0: print ('\n\nЭто слово: ', secret)
ans = 'да'
while ans == 'да':
handman()
print('Хочешь сыграть снова? (да или нет')
ans = input()
в терминале: 'break' outside loop
Ответы (3 шт):
Автор решения: George
→ Ссылка
break должен быть только в циклах!
for i in range(10):
if i % 2 == 0:
break
Или
while True:
break
Автор решения: Костя Килиманов
→ Ссылка
Break используется только в циклах. Почитай больше про работу циклов и условных операторов. Скорее всего в данном случае эту часть кода
if missed == 0:
print ('\nТы выйграл!')
break
нужно внести в тело цикла while. Но тогда получается бесконечный цикл, потому что в теле цикла не изменяется переменная turns, которая им управляет
Автор решения: MarianD
→ Ссылка
В вашем коде в части
if missed == 0:
print ('\nТы выйграл!')
break
вы хотели командой break, наверно, окончить текущую игру, т.е.
- прекратить выполнение функции
handman().
Для этого предназначена другая команда - return:
if missed == 0:
print ('\nТы выйграл!')
return
(Команда break прекращает цикл, в котором она находится, а в вашем случае она не находиться внутри никакого цикла, потому возникла ошибка.)