В вашем коде есть логическая ошибка в условии цикла `while`. Давайте разберем его:
```python a = input()
while a != 'КОНЕЦ' or a != 'конец': print(a) a = input() ```
### Проблема
В выражении `a != 'КОНЕЦ' or a != 'конец'` условие всегда будет истинным (True), потому что если `a` равно одному из этих значений (например, `a = 'КОНЕЦ'`), оно все равно будет не равно другому (`a != 'конец'`). Поэтому цикл будет выполняться бесконечно.
### Решение
Чтобы цикл завершался, когда вводится одно из значений "КОНЕЦ" или "конец", нужно использовать оператор `and` вместо `or`. Правильный вариант будет выглядеть так:
```python a = input()
while a != 'КОНЕЦ' and a != 'конец': print(a) a = input() ```
### Альтернативный подход
Вы также можете использовать конструкцию `in` для упрощения условия:
```python a = input()
while a not in ('КОНЕЦ', 'конец'): print(a) a = input() ```
Оба этих варианта будут работать правильно, и цикл завершится, когда будет введено одно из слов "КОНЕЦ" или "конец".
while True: a = input() if a == 'КОНЕЦ' or a == 'конец': break print(a) Вот так он будет работать. Как я понимаю проблема до этого была из-за того, что было две переменных a - глобальная(вне цикла) и a - локальная(внутри цикла). a - глобальная затмевает собой a - локальную, тем самым цикл выполняется вечно. То есть ты ввел значение, которое удовлетворяет условию, вошел в цикл, а выйти не можешь, потому что a - локальная не является условие цикла, условием цикла является a - глобальная. Мой код работает вечно, пока ввод пользователя удовлетворяет условию, а как только он РАВНЯЕТСЯ словам триггерам, он выходит из цикла. Если будут вопросы, спрашивай)
while a != 'КОНЕЦ' or a != 'конец':
print(a)
a = input()