Member 14053678 Ответов: 3

Факториал числа с помощью функции в Python


Другой является то, что задачи на факториал нет. используя функцию

def f(n):
если n==0:
r=1
еще:
r=n*f(n-1)
возвращение Р
print('Ans. is:',r)
f(0)


в чем тут проблема?

Ошибка показывает мне это:
---------------------------------------------------------------------------
NameError обратная трассировка (самый недавний призыв последнего)
&ЛТ;оболочкой IPython-ввод-68-cc9d7ecb020e> В &ЛТ;модуль&ГТ;()
6 r=n*f(n-1)
7 возвращение Р
----> 8 print('Ans. is:',r)
9 f(0)

NameError: имя 'r' не определено

Что я уже пробовал:

Another is that problem on factorial of a no. using function

def f(n):
    if n==0:
        r=1
    else:
        r=n*f(n-1)
    return r
print('Ans. is:',r)
f(0)


what is problem here?

Error is showing me that:
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-68-cc9d7ecb020e> in <module>()
      6         r=n*f(n-1)
      7     return r
----> 8 print('Ans. is:',r)
      9 f(0)

NameError: name 'r' is not defined

3 Ответов

Рейтинг:
2

CPallini

Как и другие указывали, вы пытаетесь получить доступ к переменной, которая находится вне области видимости. Попробуй

def f(n):
  if n==0:
    r=1
  else:
    r=n*f(n-1)
  return r

print('Ans. is:',f(5))


Рейтинг:
0

W∴ Balboos, GHB

1 - Вы должны изучить понятие объема.
2 - похоже, это твоя домашняя работа. Если вы не готовы работать над легкой проблемой сейчас, что вы думаете делать позже, когда проблемы будут трудными?

Научитесь отлаживать свою работу.

Кроме того, "1" выше-это ответ на вашу проблему - вам нужно узнать, почему.


Рейтинг:
0

Richard MacCutchan

У тебя есть print оператор, который пытается ссылаться на переменную, которая не существует. Вы должны вызвать свою функцию и захватить ее возвращаемое значение, прежде чем сможете распечатать его.