Поглиблений курс розробки на 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 на жовтому килимі і зверніться до столу, перетворіть data_a та data_b у окремі значення списку, наприклад, для data_a зробіть: data_a = [data_a]. Зробіть те саме для data_b, щоб обидві змінні стали ітерованими об’єктами для використання з функцією math.dist(). Створіть змінну з ім'ям distance і використайте її для збереження результату функції math.dist(), використовуючи data_a та data_b як аргументи. Використайте змінну distance із попередньо написаною функцією write() для завершення рівня.

Книга Коду