Python. Запуск оператора цикла после условного оператора

Вот простая программа для вычисления факториала:

n=int(input("Введите длину факториала n! :"))
s=1
k=1
    while k<n:
    k=k+1
    s=s*k
print("Факториал числа ", n,"Составляет: ", s)

Она работает, но если я пытаюсь прикрутить проверку на положительность числа

n=int(input("Введите длину факториала n! :"))
s=1
k=1
if n>0:
    while k<n:
    k=k+1
    s=s*k
print("Факториал числа ", n,"Составляет: ", s)

Мне выдает ошибку. И вот стало интересно как запускать цикл после цикла на данном примере. Спасибо!


Ответы (1 шт):

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

Мне выдает ошибку

Данный фрагмент кода выдаёт только одну ошибку из-за отсутствия отступов внутри цикла while.

Правильный вариант такой:

n=int(input("Введите длину факториала n! :"))
s=1
k=1
if n>0:
    while k<n:
        k=k+1
        s=s*k
print("Факториал числа ", n,"Составляет: ", s)

как запускать цикл после цикла на данном примере

Здесь скорее запускать цикл внутри условия.

И ещё, я не уверен, что вы правильно обрабатываете выход условия на положительное число. То есть должно быть так:

if n > 0:
    ...
    print("Факториал числа ", n,"Составляет: ", s)
else:
    print('Нет факториала от числа', n) # число отрицательное или ноль
→ Ссылка