Условный оператор if в цикле while
Как в данном коде сделать так, чтобы при вводе с клавиатуры 0 данное значение просто пропускалось и цикл повторялся. Вот условие задачи:
Напишите программу для самоконтроля навыков устного счёта: пользователь вводит 6 целых чисел, после чего программа должна вывести их произведение. Чтобы перемножать числа было не слишком легко, нули не учитывайте. Гарантируется, что не все введённые числа — нули.
number = int(input('Введите число\n'))
perem = 0
final = 1
while True:
if number != 0:
perem += 1
final *= number
number = int(input('\n'))
else:
number = int(input('\n'))
if perem == 6:
print(final)
Пытался это сделать через else, но выполнения кода всё равно прекращается.
Ответы (3 шт):
Можно так.
print('Введите число\n')
perem = 0
final = 1
while True:
number = int(input())
if number == 0:
perem += 1
continue
if number != 0:
perem += 1
final *= number
if perem == 6:
print(final)
final = 1
perem = 0
Либо написать в конце
if perem == 6:
break
если программу нужно завершить после одного ответа
Как вариант вот
final = 1
i = 0
while i < 6:
number = int(input('Введите число\n'))
if number != 0:
final *= number
i += 1
print(final)
А вы уверены, что через while надо делать? Обычно цикл while используется когда неизвестно количество итераций цикла, а тут по условию строго сказано, что цикл должен выполняться 6 раз. Приведу код при помощи цикла for, на мой взгляд так проще.
final = 1
for i in range(6):
num = int(input())
if num is not 0:
final *= num
print(final)