Продвинутый курс разработки на Python
Глава
>
Уровень
Математические модули
Расширенный модуль математики
Цель
Вычислите новые земельные участки фермы, используя дополнительные функции, импортированные из модуля math.
Через мост, пристройка имеет офисы, используемые для обследования незарегистрированной земли, которая соединяет две разные части фермы. Здесь мы найдём некоторые размеры и измерения земельных участков, будет неплохо их отсортировать и задокументировать данные. Вы можете сделать это, используя модуль math; в этом уровне нам представят новый набор его функций, которые мы можем использовать для обработки данных. Вы используете тот же import math и math. перед функциями для использования этого набора:
math.radians(): Преобразует градусы в радианы / углы.math.floor(): Округляет число вниз до базового значения.math.ceil(): Округляет число вверх до большего значения.math.atan2(): Возвращает арктангенс двух чисел в радианах.math.isclose(): Проверяет, насколько два числа близки друг к другу, возвращает true/false.math.fsum(): Складывает числа с плавающей точкой (десятичные) из списка или итерируемого объекта.math.dist(): Вычисляет расстояние между двумя точками; значения должны быть списками или итерируемыми объектами.
Начните сбор исходных данных с диаграмм, пройдя к светлому X, который отмечен на красном и синем ковре. Используйте функцию read(), чтобы определить исходные размеры, необходимые для проведения измерений. Эти измерения уже сохранены в четырех константах с именами: red_x, red_y, blue_x и blue_y.
После того как оба набора данных будут определены, пройдите к темному X, отмеченному на оранжевом ковре, и встаньте перед столом. Используйте math.radians() и math.ceil(), чтобы преобразовать переменные blue_x и blue_y в радианы и округлить их вверх. Примените float(), чтобы убедиться, что константы имеют тип с плавающей точкой, который можно изменять. Например, для переменной blue_x:
- преобразуйте в радианы:
blue_x = math.radians(float(blue_x)) - округлите значение:
blue_x = math.ceil(float(blue_x))
Сделайте то же самое для blue_y на этом X, после чего используйте предварительно написанную функцию write() и запишите переменные blue_x и blue_y.
Пройдите к темному X, отмеченному на зеленом ковре, и используйте math.radians() и math.floor() для преобразования переменных red_x и red_y в радианы с округлением вниз. Например, для переменной red_x:
- преобразуйте в радианы:
red_x = math.radians(red_x) - округлите значение:
blue_x = math.floor(red_x)
Сделайте то же самое для переменной red_y на этом X, после чего используйте предварительно написанную функцию write() и запишите переменные red_x и red_y.
Пройдите к золотому X и встаньте перед столом. Здесь мы создадим две новые переменные: data_a и data_b. В них мы будем хранить арктангенс каждого набора, используя функцию math.atan2. Для переменной data_a мы используем переменные blue_x и blue_y, следующим образом: data_a = math.atan2(blue_x,blue_y). Для переменной data_b сделайте то же самое, но с red_x и red_y. После этого используйте предварительно написанную функцию write() и запишите переменные data_a и data_b.
Теперь, когда нижние столы обработаны, пройдите к темному X, отмеченному на пурпурном ковре, создайте переменную с именем comparison и используйте её с функцией math.isclose(), передав data_a и data_b в качестве аргументов, следующим образом: comparison = math.isclose(data_a, data_b). Используйте предварительно написанную функцию write() с переменной comparison на этом X.
Перейдите к X, отмеченному на белом ковре, создайте список с именем data_list и добавьте в него data_a и data_b в указанном порядке. Создайте переменную с именем total и используйте функцию math.fsum() с аргументом data_list, следующим образом: total = math.fsum(data_list). Используйте переменную total с предварительно написанной функцией write() на этом X.
Перейдите к темному X, отмеченному на желтом ковре, и встаньте перед столом. Преобразуйте переменные data_a и data_b в отдельные элементы списка. Например, для data_a выполните: data_a = [data_a]. Сделайте то же самое для data_b, чтобы преобразовать обе переменные в итерируемые объекты для использования с функцией math.dist(). Создайте переменную с именем distance и используйте её для хранения результата функции math.dist(), передав в неё data_a и data_b в качестве аргументов. Используйте переменную distance с предварительно написанной функцией write(), чтобы завершить уровень.