Программирование контрольная работа
p = 0
while True:
a = int(input())
if a != 0:
break
p *= a
print(p)
что не верное? срочно
Если бы надо было вычислить произведение непустой последовательности вводимых элементов (причём каждый элемент с новой строки и до первого введённого нуля, не входящего в последовательность), тогда надо было бы так:
p = 1
while True:
a = int(input())
if a: p *= a
else: break
print(p)
А у Вас что за программа и что она должна делать - этого никто не знает. Но сразу видно отсутствие необходимых отступов, которые здесь прекрасно печатаются.
Если прям срочно)
В данном коде нет ошибка с точки зрения синтаксиса Python. Однако, код не выполняет ожидаемую функцию, так как бесконечный цикл while True начинается с присваивания p = 0, а затем ждет ввод целого числа (a = int(input())). Когда пользователь вводит ненулевое число, условие if a != 0: становится истинным, и цикл прерывается с помощью break.
Однако, переменная p никогда не изменяется внутри цикла, поэтому вывод print(p) всегда будет равен 0, независимо от введенных пользователем значений a. Если целью было умножение всех введенных ненулевых чисел, то код должен быть таким:
p = 1
while True:
a = int(input())
if a == 0:
break
p *= a
print(p)
В этом исправленном коде p инициализируется в 1, а не в 0, чтобы умножение происходило на ненулевое начальное значение. Когда пользователь вводит нулевое число, цикл прерывается, и выводится произведение всех предыдущих введенных чисел.
Язык программирования выбран неверно: вам, наверно, надо было на Питоне написать, а вы на Бейсике...