Cálculo del factorial recursivo en Python

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En matemáticas, el factorial de un número entero no negativo n, denotado por n!, es el producto de todos los enteros positivos menores o iguales a n. Por ejemplo, 5! = 5 x 4 x 3 x 2 x 1 = 120. En este desafío, escribirás una función de Python para calcular el factorial de un número dado usando recursión.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) 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{{"Cálculo del factorial recursivo en Python"}} python/conditional_statements -.-> lab-13628{{"Cálculo del factorial recursivo en Python"}} python/function_definition -.-> lab-13628{{"Cálculo del factorial recursivo en Python"}} python/raising_exceptions -.-> lab-13628{{"Cálculo del factorial recursivo en Python"}} end

Factorial

Escribe una función factorial(num) que tome un número entero no negativo num como argumento y devuelva su factorial. La función debe utilizar recursión para calcular el factorial. Si num es menor o igual a 1, devuelve 1. En caso contrario, devuelve el producto de num y el factorial de num - 1. La función debe lanzar una excepción si num es un número negativo o de punto flotante.

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

Resumen

En este desafío, aprendiste cómo calcular el factorial de un número usando recursión. También aprendiste cómo manejar excepciones en Python.