Извлечение информации из параметров

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

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

Введение

В этом проекте вы научитесь извлекать числа из заданного текста, вычислять среднее арифметическое этих чисел и округлять результат до двух десятичных знаков. Этот проект поможет вам потренироваться в работе с регулярными выражениями и обработке аргументов командной строки в Python.

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

$ python3 ~/project/find_num.py "a11 b3.14c15 16"
11.29
$ python3 ~/project/find_num.py "a 5 b 6 c7 dd8 9"
7.00
$ python3 ~/project/find_num.py "ad1dg6dgd9dg4qwe10"
6.00

🎯 Задачи

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

  • Как использовать регулярные выражения для поиска всех чисел (как целых, так и с плавающей точкой) в заданном тексте
  • Как преобразовать найденные числа из строк в числа с плавающей точкой
  • Как вычислить среднее арифметическое извлеченных чисел
  • Как форматировать результат среднего арифметического до двух десятичных знаков
  • Как обрабатывать аргументы командной строки в скрипте на Python

🏆 Достижения

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

  • Написать скрипт на Python, который может извлекать числа из заданного текста
  • Вычислить среднее арифметическое извлеченных чисел
  • Форматировать результат среднего арифметического до двух десятичных знаков
  • Запускать скрипт из командной строки и передавать текст в качестве аргумента

Настройка окружения проекта

В этом шаге вы научитесь настраивать окружение проекта и создавать необходимые файлы.

  1. Откройте терминал и перейдите в директорию /home/labex/project.
  2. Создайте новый файл на Python с именем find_num.py в директории /home/labex/project.
cd /home/labex/project
touch find_num.py
  1. Откройте файл find_num.py в текстовом редакторе.

Импортировать необходимые модули

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

  1. Добавьте следующий код в начало файла find_num.py:
import re  ## Импортировать модуль регулярных выражений
import sys  ## Импортировать модуль sys для аргументов командной строки

Эти модули будут использоваться для работы с регулярными выражениями и обработки аргументов командной строки.

Определить функцию для вычисления среднего значения

В этом шаге вы научитесь определять функцию для вычисления среднего значения чисел в заданном тексте.

  1. Добавьте следующую функцию в файл find_num.py:
def calculate_average(text):
    ## Используйте шаблон регулярного выражения для поиска всех чисел с плавающей точкой и целых чисел в тексте
    numbers = re.findall(r"[-+]?\d*\.\d+|\d+", text)
    ## Преобразуйте найденные числа из строк в числа с плавающей точкой с использованием списочного выражения
    numbers = [float(num) for num in numbers]
    ## Вычислите среднее значение этих чисел
    average = sum(numbers) / len(numbers)
    ## Отформатируйте среднее значение с двумя десятичными знаками
    average_formatted = "{:.2f}".format(average)
    return average_formatted

Эта функция принимает текст в качестве входных данных, использует регулярное выражение для извлечения всех чисел (как целых, так и с плавающей точкой) из текста, вычисляет среднее значение этих чисел и форматирует результат до двух десятичных знаков.

Реализовать главную логику

В этом шаге вы научитесь реализовывать главную логику скрипта.

  1. Добавьте следующий код в файл find_num.py:
if __name__ == "__main__":
    ## Считайте текст для анализа из аргументов командной строки (первый аргумент, sys.argv[1])
    text = sys.argv[1]
    ## Вызовите функцию calculate_average с предоставленным текстом
    average = calculate_average(text)
    ## Выведите вычисленное среднее значение с двумя десятичными знаками
    print(average)

Этот код проверяет, запускается ли скрипт как основная программа (if __name__ == "__main__":). Если да, то он считывает текст для анализа из аргументов командной строки (первый аргумент, sys.argv[1]), вызывает функцию calculate_average с предоставленным текстом и выводит вычисленное среднее значение.

Тестировать скрипт

В этом шаге вы научитесь тестировать скрипт с помощью предоставленных примеров.

  1. Сохраните файл find_num.py.
  2. Запустите скрипт с предоставленными примерами:
python3 /home/labex/project/find_num.py "a11 b3.14c15 16"
python3 /home/labex/project/find_num.py "a 5 b 6 c7 dd8 9"
python3 /home/labex/project/find_num.py "ad1dg6dgd9dg4qwe10"

Результат должен соответствовать ожидаемым:

11.29
7.00
6.00

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

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

Резюме

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