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

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

Введение

В этом проекте вы научитесь вычислять факториал неотрицательного целого числа. Факториал положительного целого числа — это произведение всех положительных целых чисел, меньших или равных ему, а факториал 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 для решения реальной задачи

Создайте файл 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.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, чтобы улучшить свои навыки.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться