Python для умножения циклов

Изучение python на обучении grok и немного озадачило эту проблему. Мне нужна программа для создания этого вывода:

Enter a negative number: -6
720

Формула: -1 x -2 x -3 x -4 x -5 x -6 = -720

Мой код:

n = int(input('Enter a negative number: '))
result = 0
for i in range(-1*n):
    result = result + i 
print(result)

person Community    schedule 12.10.2017    source источник
comment
Операторы внутри цикла for должны иметь отступ.   -  person Barmar    schedule 12.10.2017
comment
Какую формулу вы должны реализовать? Добавление чисел от 0 до 5 просто вернет 15.   -  person Barmar    schedule 12.10.2017
comment
Спасибо за отзыв! Я должен ввести -6 и получить 720 -1 х -2 х -3 х -4 х -5 х -6 = 720   -  person    schedule 12.10.2017
comment
Ваша формула показывает умножение, но ваш код выполняет сложение.   -  person Barmar    schedule 12.10.2017


Ответы (1)


Если n = 6, то range(-1 * n) будет 0, 1, 2, 3, 4, 5. Это не те числа, которые вам нужны, вам нужны -6, -5, -4, -3, -2, -1. Чтобы получить эту последовательность, вы должны использовать range(n, 0).

И вы должны умножать, а не прибавлять. Это также означает, что вам нужно инициализировать результат с помощью 1, а не 0, потому что умножение на 0 всегда равно 0.

n = int(input('Enter a negative number: '))
result = 1
for i in range(n, 0):
    result *= i
print(result)
person Barmar    schedule 12.10.2017
comment
ааааа вижу! Благодарю вас! Результат = 1 это чтобы установить приращение на 1??? - person ; 12.10.2017
comment
Нет, range() по умолчанию увеличивается на 1. - person Barmar; 12.10.2017
comment
Арифметика начальной школы: если вы умножаете что-либо на 0, вы получаете 0. Вы должны начать с 1, если вы умножаете. - person Barmar; 12.10.2017
comment
Бармар, ваши примеры диапазонов неверны. range(-6) и range(6, 0) оба приводят к []. - person Chris Johnson; 12.10.2017
comment
@ChrisJohnson Должно быть range(-6, 0) - person Barmar; 12.10.2017