Условный оператор 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 шт):

Автор решения: vlad9i2

Можно так.

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

если программу нужно завершить после одного ответа

→ Ссылка
Автор решения: dest316

Как вариант вот

final = 1
i = 0
while i < 6:
    number = int(input('Введите число\n'))
    if number != 0:
        final *= number
        i += 1
print(final)
→ Ссылка
Автор решения: AndreyM

А вы уверены, что через while надо делать? Обычно цикл while используется когда неизвестно количество итераций цикла, а тут по условию строго сказано, что цикл должен выполняться 6 раз. Приведу код при помощи цикла for, на мой взгляд так проще.

final = 1
for i in range(6):
    num = int(input())
    if num is not 0:
        final *= num
print(final)
→ Ссылка