Coding for KidsCoding for Kids
Творческие УровниИспытанияРуководство для Учителей
Голосовать за функции
Продвинутый курс разработки на Python
Глава
>
Уровень

Математические модули
Введение в модуль математики

Цель

Проверьте документы на землю и границы участка на ферме, проверьте и подсчитайте числа, используя функции модуля math.

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

import math

Как и модуль statistics ранее, модуль math содержит набор математических функций, которые можно использовать для расширения встроенной библиотеки python:

  • math.isnan(): Проверяет, не является ли вводимое значение числом

  • math.isinf(): Проверяет, является ли вводимое значение бесконечным числом

  • math.isfinite(): Проверяет, является ли вводимое значение конечным

  • math.prod(): Перемножает все переданные аргументы

  • math.pow(): Принимает два аргумента и возвращает значение первого аргумента, возведенное в степень второго аргумента.

  • math.trunc(): Обрезает переданное значение, удаляя десятичную часть числа с плавающей точкой, превращая его в целое число. (Не округляет, а просто удаляет)

  • math.copysign(): Принимает два аргумента, копирует знак (- или +) из второго аргумента и присваивает его первому.

  • math.factorial(): Принимает аргумент и перемножает число последовательно от заданного значения до 1. Например, если значение равно 5, то вычисляется: 5 x 4 x 3 x 2 x 1, что дает результат.

Мы будем использовать эти функции для анализа и записи данных, чтобы подготовить проекты развития. Существует три константы-списка, содержащие схемы фермерского хозяйства, названные: red_schematics, green_schematics, blue_schematics. В этих схемах записаны нечисловые и непригодные значения; используйте функции модуля math для идентификации элементов, чтобы найти пригодные данные и записать их.

Сначала пройдите к темной отметке X на красном ковре и используйте цикл для перебора элементов константы-списка red_schematics, чтобы идентифицировать пригодные элементы.

for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)

Цикл пройдет по всем элементам списка, функция math.isnan() определит нечисловые записи, а функция math.isinf() — бесконечные значения, которые не могут использоваться для сбора данных. Создайте новый список с именем red_values и используйте генератор списка для удаления нежелательных элементов, используя функцию math.isfinite() для их фильтрации, следующим образом: red_values = [x for x in red_schematics if math.isfinite(float(x))] .

Затем сложите все числа вместе, используя функцию math.prod() для перемножения всех элементов списка, следующим образом: red_values = math.prod(red_values) .

Повторите этот же процесс фильтрации для темных отметок X на зеленом и синем коврах, используя константы-списки green_schematics и blue_schematics, и объедините элементы в списки с именами green_values и blue_values.

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

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

Подойдите к темной отметке X на фиолетовом ковре, создайте переменную с именем purple_data и используйте функцию math.pow() для возведения полученных данных в третью степень, чтобы получить информацию о координатах. Возведите индекс в степень 3, следующим образом: purple_data = math.pow( -index data- , 3 ), не забудьте добавить ранее считанные индексные данные. Затем используйте функцию math.trunc() для удаления десятичной части из переменной, следующим образом: purple_data = math.trunc(purple_data). После этого, на отметке X, используйте предустановленную в редакторе функцию write() с аргументом purple_data для записи данных, сохраненных в переменной.

Для завершения пройдите к светлой отметке X перед картотекой рядом с верхним столом. Снова используйте функцию read(), чтобы получить индексные данные; эти данные необходимо распаковать для получения дополнительной информации о координатах участка. Создайте переменную с именем white_data для хранения значения, найденного в файле, и переменную с именем sign для хранения знакового числа, найденного в файле. Затем пройдите к темной отметке X на белом ковре и используйте функцию math.copysign(), передав в нее две созданные переменные, и присвойте результат переменной white_data, следующим образом: white_data = math.copysign(white_data,sign) .

После этого, используя white_data, примените функцию math.factorial() для вычисления факториала, сначала преобразовав white_data в целое число, следующим образом: white_data = math.factorial(int(white_data)). Затем воспользуйтесь предустановленной функцией write(), чтобы записать white_data и завершить уровень.

Книга Кода