Найти тему

Программирование на Python. Основные математические функции. Библиотека math

В этом уроке мы займемся решением задач. Для этого нам понадобятся некоторые математические функции, встроенные в основную библиотеку Python:

  • int(х) Получение целого числа из строки цифр или из вещественного числа путем отсекания дробной части
  • float(х) Получение вещественного числа из строки цифр с точкой или из целого числа
  • abs(х) Абсолютное значение числа (модуль)
  • х**а Возведение числа Х в степень А
  • х//а Деление нацело числа Х на А
  • х%а Остаток от деления числа Х на А
  • round(х) Округляет Х до ближайшего целого
  • round(х, а) Округляет Х до А знаков после точки

Кроме того, еще больше функций, необходимых для математических вычислений, собрано в библиотеке math.

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

Некоторые библиотеки поставляются вместе с Python, другие нужно устанавливать отдельно. Библиотека math поставляется с Питоном, поэтому отдельно скачивать и устанавливать ее не требуется.

Вот список функций библиотеки math:

  • sqrt(х) Квадратный корень из Х
  • floor(х) Округляет Х до меньшего целого значения
  • ceil(х) Округляет Х до большего целого значения
  • log(х) Натуральный логарифм из Х
  • sin(х) Синус угла Х, указанного в радианах
  • cos(х) Косинус угла Х, указанного в радианах
  • tan(х) Тангенс угла Х, указанного в радианах

Для того, чтобы воспользоваться функциями из дополнительной библиотеки, необходимо в самом начале программы написать инструкцию подключения:

import math

Иными словами, мы импортируем из нее все ее функции.

Теперь, для того, чтобы наша среда программирования точно понимала, что мы хотим использовать какую-то конкретную функцию из какой-то конкретной библиотеки (а в одной программе могут быть подключены десятки библиотек, и существует вероятность, что среди всех функций из всех библиотек есть одинаковые), то необходимо перед функцией приписать название библиотеки, например, math.sqrt().

Итак, в законченном виде, например, извлечение квадратного корня будет выглядеть так:

y = math.sqrt(x)

Думаем, понятно. К слову, извлечение корня возможно также посредством использования операции возведения в степень. Например, перепишем предыдущий пример:

y = x**0.5

То есть, мы возвели число Х в степень ½ . А что это, если не квадратный корень? Получается, для извлечения корней никаких библиотек вообще подключать не нужно – можно справиться встроенными функциями.

Теперь поговорим о различных видах округления чисел. В Python их целых три. Проще всего будет разобрать на примерах:

round(4.51) # Стандартное округление, как мы привыкли, округляется до 5
round(4.5) # Здесь округляется до 4
math.floor(4.5) # Округляется в меньшую сторону, т.е. до 4
math.ceil(4.2) # Округляется в большую сторону, т.е. до 5

Каждая из этих функций пригодится, уж поверьте.

Кстати, заметили, что в строках появился новый символ «#»? Это знак комментария. Все, что находится в строке после него, сохраняется, но при работе программы не учитывается. Хорошая вещь, нужная, если вы работаете на большим проектом – потом пригодится, если нужно будет вспомнить и понять, что к чему в коде.

Давайте напишем какую-нибудь программу. Например, для вычисления гипотенузы прямоугольного треугольника с использованием модуля math.

Привыкайте оформлять код программы красиво. Например, хорошо читается код, который зрительно (с помощью, например, пустых строк) разделен на функциональные блоки. В нашем случае мы отделили основной код программы от блока импортов библиотек.

Также желательно всегда давать пользователю понимание того, что делает программа и что конкретно от него требуется в данный момент. Поэтому мы сначала вывели строку, что программа делает – вычисляет гипотенузу, а потом попросили его ввести катеты.

Из курса математики мы знаем, что квадрат гипотенузы равен сумме квадратов катетов, т.е.

c2 = a2 + b2

Следовательно, C равна квадратному корню из этой суммы. Что мы и сделали в коде, применив функцию sqrt().

Результат выполнения этой программы:

-2

Как видно, хоть в результате получилось целое число 5, Python все равно пририсовал ему дробную часть. Почему? Потому что только сложение, вычитание и умножение в результате дают целые числа. А остальные операции всегда приводят к получению дробные (вещественные) числа. Это в нашем примере результат целый. А если бы мы ввели какие-то другие числа, то и результат был бы вещественным.

Давайте этой задаче придадим бытовой смысл. К примеру, мы построили дом, и теперь нам необходимо накрыть его крышей:

-3

Скаты крыши будут выполнены из металлического профлиста. Нужно вычислить длину профлиста, если известна ширина дома и требуемая высота крыши.

Исходя из условия задачи, сторона b будет равна половине ширины дома, a будет задано. Поэтому просто применим формулу из предыдущего примера.

Предположим, что результат получится дробный. Никто не будет вымерять миллиметры, чтобы отрезать с такой точностью профлист. Поэтому будем округлять до сантиметров (хотя высота крыши и ширина дома будут вводиться в метрах), т.е. до двух знаков после запятой. Например 8,25 м. Для этого нам понадобится функция округления с возможность указания количества цифр после точки – round(х, а).

Смотрим код:

-4

Результат:

-5

Смотрите, мы сознательно разделили получение результата на две части: сначала получаем гипотенузу, потом ее округляем. Но никто не запрещает их объединить в одно:

c = round(math.sqrt(a**2 + b**2), 2)

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

------------------------------

Список уроков Программирование на Python для начинающих. Базовый уровень

Следующий урок Основы логических выражений

Предыдущий урок input() - функция ввода информации посредством клавиатуры

------------------------------

Задания

1. Дано пятизначное число и символ. Построить горизонтальную диаграмму из цифр числа. Результат выполнения должен выглядеть так:

-6

Комменты приветствуются, за палец вверх - отдельное спасибо. Удачи!