Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 21, 2015 18:44:08

Vathys
Зарегистрирован: 2015-09-21
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычисление факториала в Python

Здравствуйте,попробовала написать простейшую программку по вычислению факториала, но что-то у меня не сходится. В чем проблема?

n = int(input("n = "))
P = 1
for i in range (0, n):
P = P * (i + 1)
    print("n! = ", P)

Заранее спасибо.

Отредактировано FishHook (Сен. 21, 2015 20:07:24)

Офлайн

#2 Сен. 21, 2015 19:09:18

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2762
Репутация: +  185  -
Профиль   Отправить e-mail  

Вычисление факториала в Python

> range (0, n)

У меня всё нормально работает. Вот моё решение этой несложной задвачи:

def faktor(f):
     return reduce(lambda x, y: x*y, xrange(1, f+1))



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Сен. 21, 2015 19:11:26)

Офлайн

#3 Сен. 21, 2015 19:48:52

Vathys
Зарегистрирован: 2015-09-21
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычисление факториала в Python

Спасибо за решение. Но все же мне хотелось бы узнать, в чем моя ошибка, не считая того, что i будет принимать значения от 1. Программа выдает expected an indented block к строке P = P * (i + 1). Что она от меня хочет, мне не понятно.

Офлайн

#4 Сен. 21, 2015 19:57:14

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Вычисление факториала в Python

Отступ не соблюден. Внутри цикла должен быть отступ. В питоне отступы являются частью языка.

n = int(input("n = "))
P = 1
for i in range(0, n):
    P = P * (i + 1)  # отступ
print("n! = ", P)

P.S. Читаем внимательно документацию.

Отредактировано 4kpt_III (Сен. 21, 2015 19:58:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version