Coding for KidsCoding for Kids
Níveis CriativosDesafiosGuia do Professor
Votar em funcionalidades
Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível

Módulos de Matemática
Introdução ao Módulo de Matemática

Objetivo

Verifique as escrituras e os limites das propriedades na fazenda, valide e faça os cálculos utilizando as funções do módulo Math.

No escritório localizado na extremidade do edifício principal há um arquivo com plantas antigas do prédio e escrituras de terrenos. Há planos para expandir a fazenda para o leste, mas é importante deixar toda a documentação em ordem antes de você decidir analisar quaisquer projetos de construção. Isso será feito utilizando o módulo math do python.

import math

Assim como o módulo statistics anteriormente, o módulo math possui uma coleção de funções matemáticas que podemos usar para estender a biblioteca interna do python:

  • math.isnan(): Verifica se o valor de entrada não é um número

  • math.isinf(): Verifica se o valor de entrada é um número infinito

  • math.isfinite(): Verifica se o valor de entrada é finito

  • math.prod(): Multiplica todos os argumentos fornecidos

  • math.pow(): Recebe dois argumentos e retorna o valor do primeiro argumento elevado à potência do segundo argumento.

  • math.trunc(): Trunca o argumento fornecido, removendo a parte decimal de um número em ponto flutuante, tornando-o um número inteiro. (Não arredonda, apenas remove)

  • math.copysign(): Recebe dois argumentos, copia o sinal (- ou +) do segundo argumento e o aplica ao primeiro.

  • math.factorial(): Recebe um argumento e calcula o produto de todos os números inteiros deste número até 1. Por exemplo, se o valor for 5, ele realiza: 5 x 4 x 3 x 2 x 1 e gera um resultado.

Utilizaremos essas funções para revisar e registrar alguns dados a fim de preparar os projetos de desenvolvimento. Existem três constantes de lista contendo os esquemas da fazenda denominados: red_schematics, green_schematics, blue_schematics. Esses esquemas possuem valores não numéricos e inutilizáveis registrados; utilize as funções do módulo math para identificar os elementos e encontrar os dados úteis, para que possamos registrá-los.

Primeiro, caminhe até a marca de X escura sobre o tapete vermelho e use um loop para percorrer os elementos da constante de lista red_schematics, a fim de identificar os elementos utilizáveis.

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)

O loop percorrerá todos os elementos da lista; a função math.isnan() identificará entradas não numéricas, enquanto math.isinf() identificará valores infinitos que não podem ser usados para a coleta de dados. Crie uma nova lista chamada red_values e use uma compreensão de lista para remover os elementos indesejados utilizando math.isfinite() para filtrá-los, assim: red_values = [x for x in red_schematics if math.isfinite(float(x))].

Em seguida, some todos os números utilizando a função math.prod() para multiplicar todos os itens da lista, assim: red_values = math.prod(red_values).

Faça o mesmo processo de filtragem nas marcas de X escuras sobre os tapetes verde e azul, utilizando as constantes de lista green_schematics e blue_schematics e consolidando os elementos em listas chamadas green_values e blue_values. Caminhe até a marca de X dourada, vire-se para a mesa e use a função write() que já está pré-escrita no editor para registrar os dados dos esquemas utilizáveis. Depois de juntar tudo, caminhe até a marca de X clara e use a função open() para acessar a sala seguinte.

Uma vez na sala seguinte, há algumas mesas com escrituras de terrenos e coordenadas. É uma boa ideia registrar alguns dados antes de passar para a checagem das novas adições à fazenda na próxima área, do outro lado da ponte. Caminhe até a marca de X clara em frente à caixa com mapas, próxima à primeira mesa, e utilize a função read() para adquirir os dados de índice das escrituras.

Caminhe até a marca de X escura sobre o tapete roxo, crie uma variável chamada purple_data e use a função math.pow() para multiplicar os dados adquiridos a fim de obter as informações de coordenadas. Eleve o índice à potência de 3, assim: purple_data = math.pow( -index data- , 3 ), certificando-se de utilizar os dados de índice lidos anteriormente. Use math.trunc() para remover os dados decimais da variável, assim: purple_data = math.trunc(purple_data). Feito isso, na marca de X, utilize a função write() pré-escrita no editor com purple_data para registrar os dados armazenados na variável.

Para finalizar, caminhe até a marca de X clara em frente ao armário de arquivos próximo à mesa superior. Use a função read() para adquirir os dados de índice mais uma vez; esses dados precisam ser processados para revelar mais informações de coordenadas do terreno. Crie uma variável chamada white_data para armazenar o valor dos dados encontrados no arquivo e uma variável chamada sign para armazenar o número de sinal encontrado no arquivo. Caminhe até a marca de X escura sobre o tapete branco e utilize a função math.copysign() com as duas variáveis criadas como argumentos, atribuindo o valor à white_data, assim: white_data = math.copysign(white_data,sign).

Depois, com white_data, utilize math.factorial() para calcular o fatorial; converta white_data para um número inteiro e use-o com a função, assim: white_data = math.factorial(int(white_data)). Utilize a função write() pré-escrita para registrar white_data e completar o nível.

Livro de Código