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

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

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

Введение

В этом проекте вы научитесь вычислять факториал неотрицательного целого числа. Факториал положительного целого числа — это произведение всех положительных целых чисел, меньших или равных ему, а факториал 0 равен 1.

👀 Предварительный просмотр

$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320

🎯 Задачи

В этом проекте вы научитесь:

  • Создавать файл factorial.py в директории ~/project
  • Реализовывать функцию factorial для вычисления факториала неотрицательного целого числа
  • Обрабатывать отрицательные входные данные, поднимая исключение ValueError и отображая сообщение с просьбой "Пожалуйста, введите неотрицательное целое число"

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в концепции факториала и научиться вычислять его
  • Написать функцию на Python для вычисления факториала неотрицательного целого числа
  • Обрабатывать ошибки ввода и отображать соответствующие сообщения об ошибках
  • Применить свои знания в программировании на 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/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") python/ErrorandExceptionHandlingGroup -.-> python/raising_exceptions("Raising Exceptions") subgraph Lab Skills python/conditional_statements -.-> lab-302699{{"Вычисление факториала в Python"}} python/function_definition -.-> lab-302699{{"Вычисление факториала в Python"}} python/arguments_return -.-> lab-302699{{"Вычисление факториала в Python"}} python/raising_exceptions -.-> lab-302699{{"Вычисление факториала в Python"}} end

Создайте файл factorial.py

В этом шаге вы создадите файл factorial.py в директории ~/project. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Создайте новый файл и сохраните его под именем factorial.py в директории ~/project.
cd ~/project
touch factorial.py
  1. В файле factorial.py добавьте следующий код:
def factorial(n):
    """
    Calculate the factorial of a non-negative integer.

    Args:
        n (int): The non-negative integer for which to calculate the factorial.

    Returns:
        str: The factorial of the input integer in the format "{n}! = {factors_str} = {result}".

    Raises:
        ValueError: If the input integer is negative.
    """
    ## Add your code here

Это начало функции factorial, которую вы реализуете на следующем шаге.

Реализуйте функцию factorial

В этом шаге вы реализуете функцию factorial в файле factorial.py. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. В файле factorial.py замените комментарий ## Add your code here следующим кодом:
def factorial(n):
    """
    Calculate the factorial of a non-negative integer.

    Args:
        n (int): The non-negative integer for which to calculate the factorial.

    Returns:
        str: The factorial of the input integer in the format "{n}! = {factors_str} = {result}".

    Raises:
        ValueError: If the input integer is negative.
    """
    if n < 0:
        raise ValueError("Please enter a non-negative integer.")
    elif n == 0:
        return "0! = 1"
    else:
        result = 1
        factors = []
        for i in range(1, n + 1):
            result *= i
            factors.append(str(i))
        factors_str = " * ".join(factors)
        return f"{n}! = {factors_str} = {result}"

## Partial example printout:
print(factorial(2))
print(factorial(8))

Этот код реализует функциональность вычисления факториала неотрицательного целого числа. Он обрабатывает случай отрицательного ввода, поднимая исключение ValueError, и случай 0, возвращая "0! = 1". Для всех других неотрицательных целых чисел он вычисляет факториал, умножая все числа от 1 до входного числа, и возвращает результат в нужном формате.

  1. Сохраните файл factorial.py.

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

  1. Чтобы протестировать свою реализацию, выполните следующую команду в терминале:
$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.