Вычисление факториала с использованием рекурсии в Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В математике факториалом неотрицательного целого числа n, обозначенного как n!, является произведение всех положительных целых чисел, меньших или равных n. Например, 5! = 5 x 4 x 3 x 2 x 1 = 120. В этом испытании вы напишете функцию на Python для вычисления факториала заданного числа с использованием рекурсии.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ErrorandExceptionHandlingGroup -.-> python/raising_exceptions("Raising Exceptions") subgraph Lab Skills python/comments -.-> lab-13628{{"Вычисление факториала с использованием рекурсии в Python"}} python/conditional_statements -.-> lab-13628{{"Вычисление факториала с использованием рекурсии в Python"}} python/function_definition -.-> lab-13628{{"Вычисление факториала с использованием рекурсии в Python"}} python/raising_exceptions -.-> lab-13628{{"Вычисление факториала с использованием рекурсии в Python"}} end

Факториал

Напишите функцию factorial(num), которая принимает неотрицательное целое число num в качестве аргумента и возвращает его факториал. Функция должна использовать рекурсию для вычисления факториала. Если num меньше или равно 1, верните 1. В противном случае верните произведение num и факториала num - 1. Функция должна выбросить исключение, если num является отрицательным или вещественным числом.

def factorial(num):
  if not ((num >= 0) and (num % 1 == 0)):
    raise Exception("Number can't be floating point or negative.")
  return 1 if num == 0 else num * factorial(num - 1)
factorial(6) ## 720

Резюме

В этом испытании вы узнали, как вычислять факториал числа с использованием рекурсии. Также вы узнали, как обрабатывать исключения в Python.