Вопрос задан 26.07.2026 в 10:36. Предмет Информатика. Спрашивает Кушнарева Елизавета.

Почему не получается?

n = int(input())
while n != 0:
x = int(input())
if x != n:
t = 1
n = int(input())
if t == 1:
print("no")
else:
print("yes")

Перейти к ответам

Ответы на вопрос

Отвечает Ковалева Анастасия.

Проблема в нескольких местах.

Во-первых, переменная t создаётся только внутри условия:

Python
if x != n:
    t = 1

Если условие ни разу не выполнится, переменная t вообще не появится. Тогда в строке:

Python
if t == 1:

возникнет ошибка:

Python
NameError: name 't' is not defined

Поэтому её нужно определить заранее, например:

Python
t = 0

Во-вторых, внутри одного прохода цикла у вас два раза выполняется input():

Python
x = int(input())
...
n = int(input())

То есть программа за одну итерацию считывает сразу два новых числа. Из-за этого числа сравниваются парами, а часть логики последовательности теряется.

Например, если ввод такой:

1
2
3
0

то сначала n = 1, затем внутри цикла x = 2, после чего n = 3. Число 2 больше нигде не сохраняется как предыдущее значение.

Если задача состоит в том, чтобы проверить, одинаковы ли все введённые числа до появления нуля, код можно написать так:

Python
n = int(input())
t = 0

while n != 0: x = int(input())

if x != 0 and x != n: t = 1

n = x

if t == 1: print("no") else: print("yes")

Здесь каждое новое число x сравнивается с предыдущим n, после чего становится предыдущим:

Python
n = x

Также можно использовать логическую переменную, что обычно понятнее:

Python
n = int(input())
same = True

while n != 0: x = int(input())

if x != 0 and x != n: same = False

n = x

if same: print("yes") else: print("no")

Главные причины, почему исходный код не работает правильно: переменная t не имеет начального значения и в каждой итерации цикла считываются два числа вместо одного.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос