Enviar um café pro programador

Mostrando postagens com marcador module. Mostrar todas as postagens
Mostrando postagens com marcador module. Mostrar todas as postagens

O Módulo math - Matemática no Python

Neste tutorial de nossa Apostila de Python, vamos aprender a usar funções matemáticas prontas, do módulo math do Python.

Tutorial anterior: Como gerar números aleatórios - Biblioteca random
Ler também: Certificado do Curso Online de Python


Módulo math - Funções Matemáticas Prontas

Lembra quando explicamos a utilidade dos módulos?
De organizar nosso código e prover a reutilização de código sem precisar programar tudo de novo?

Pois é, o módulo math é o melhor exemplo disso. É possível fazer muuuuita coisa da Matemática simplesmente usando as funções prontas dessa biblioteca.

Para usar em seus programas, basta importar:
import math

Para conhecer mais as funções e possibilidades desse módulo, acesse a documentação oficial do Python:
https://docs.python.org/3/library/math.html

Vamos agora fazer um resumo e falar das principais funções do módulo math.

Trigonometria na math

Há várias funções que fazem cálculos de trigonometria, na math:
  • cos(x) - dá o valor cosseno de x radianos
  • sin(x) - valor do seno de x radianos
  • tan(x) - valor da tangente de x radianos
  • acos(x) - retorna o arco cosseno de x, em radianos
  • asin(x) - retorna o arco seno de x, em radianos
  • atan(x) - retorna o arco tangente de x, em radianos



Conversão entre graus e radianos: degrees(x) e radians(x)

Nos exemplos acima, trabalhamos com valores em radianos.
Porém, geralmente precisamos trabalhar com graus ao invés de rad.

Para transformar x radianos em graus, use a função:
degrees(x) - que ela vai te dar o valor em graus de x radianos

Para fazer o contrário, pegar um valor x em graus e transformar em radiano, fazemos:
radians(x)

Raiz quadrada: sqrt(x)

Para achar a raiz quadrada (square root) de um valor x, use a função sqrt():
sqrt(x)



Constante pi: math.pi

Além de funções, uma biblioteca/módulo pode armazenar constantes.
Por exemplo, em geometria usamos muito o valor de pi (3.14...), por exemplo, para achar o perímetro ou área de uma circunferência, ou volume de uma esfera.

Para não ter que decorar o valor de pi ou buscar na internet, basta usar:
math.pi

É a constante pi, com várias casas decimais de precisão.

Logaritmo e Exponencial

A constante e, base dos logaritmos naturais (número de Euler ou Néper), pode ser usada com a constante:
math.e

Já se desejar calcular uma exponenciação do tipo e^x (e elevado a x), use a função:
math.exp(x)

Já o logaritmo natural de x pode ser calculado da seguinte forma:
math.log(x)

Se preferir o logaritmo na base 10:
math.log10(x)


Arredondar pra baixo: floor(x)

Outra coisa muito utilizada, matematicamente, é o arredondamento.
Se quiser arredondar um número x para baixo, faça:
math.floor(x)

Por exemplo:
math.floor(1.1) = 1
math.floor(3.3) = 3
math.floor(-1.1) = -2

E caso o número não seja decimal, ele retorna o próprio valor:
math.floor(10) = 10
math.floor(-2) = -2

Ou seja, a função floor() retorna o maior inteiro que é menor ou igual a x.
Floor, em inglês, é chão, solo.




Arredondar para cima: ceil(x)

Já para arredondar para cima, usamos a função:
math.ceil(x)

Por exemplo:
math.ceil(1.1) = 2
math.ceil(3.3) = 4
math.ceil(-1.1) = -1

E caso o número não seja decimal, ele retorna o próprio valor:
math.ceil(10) = 10
math.ceil(-2) = -2

Ceiling é teto, em inglês.
A função ceil(x) é o menor inteiro que é maior ou igual a x.

Módulo em Python - O que é? Para que serve? Como funciona? Como se usa ?

Neste tutorial, vamos dar início ao nosso estudo sobre módulos em Python, que é uma maneira de organizar nossos projetos e programas.

Aqui, vamos dar uma pincelada teórica sobre o que é um módulo, para que serve, onde e como é usado etc. No próximo tutorial, vamos criar um exemplo prático e real de um projeto usando módulos.

Leia: Curso de Python com Certificado



Módulo - O que é?

De uma maneira bem simples, clara e objetiva: módulo é um arquivo. Um arquivo que contém código Python.

Exemplo de módulos:
  • math.py: para trabalhar com Matemática
  • random.py: módulo para se trabalhar com números aleatórios
  • os.py: módulo para se trabalhar com arquivos
  • time.py: para trabalhar com tempo (data, dia, ano, etc)



Veja alguns módulos que já vem no Python, por padrão:

Module function Python

Dentro desses arquivos, existem muitas, mas muitas funções mesmo, dos mais diversos tipos e dos mais variados propósitos.

Módulo - Para que serve ?

Basicamente, para organizar seus projetos.

Até o momento, em nosso Curso de Python, fizemos scripts de 10, 15, 20 linhas no máximo. Mas isso se deve, principalmente, por termos feitos tarefas simples.



Agora, imagine projetos como Instagram e Youtube, que usam Python. Agora, imagine um grande programa, um sistema bem robusto...facilmente passa de centenas e até milhares de linhas de código.

Pense agora no trabalho que daria para escrever milhares de linha de código em um único arquivo .py? Não dá, ficaria muito desorganizado.

E é aí que entra o conceito de módulo, a ideia basicamente é dividir o código em 'pedaços' menores, arquivos .py, de assuntos específicos e relacionados entre site

Módulo - Onde é usado ?
Imagine que você e sua empresa foram contratados para desenvolver um jogo.
Um jogo grande, complexo, como LoL ou WoW. Será necessário uma equipe muito grande de profissionais.

Por exemplo, alguém responsável por desenhar os personagens e cenários. Outra pessoa pra ficar responsável pelo áudio, outro pela lógica do jogo, alguém no banco de dados, outro para tratar a parte online do jogo.

Agora imagine tudo isso, num bloco só de código.
Não dá.

Módulo menu.py

Ao iniciar seu jogo, deve aparece o menu para escolher modo de jogo, mapa, personagens etc. Tudo isso deve ficar no módulo menu.py, que vai ficar responsável por exibir os menus de opções.

Por exemplo, para aparecer o menu inicial, damos o comando:
menu.iniciar()

Ou seja, a função iniciar() do módulo menu.py é executada.
Depois, o menu de personagens:
menu.personagens()

Agora, os mapas: menu.mapas()

Ou seja, basta colocarmos um ponto . e em seguida rodar a função correta. 

Módulo audio.py

A solução é simples, usar módulo.

Pegue a equipe de sonoplastia, e deixem eles criarem o módulo audio.py, que vai ter uma porção de funções.

Por exemplo, para rodar o som do mar, basta dar o comando:
audio.som_mar()

Pronto, foi invocada a função som_mar(), dentro do módulo audio.py

Módulo video.py

Você vai precisar de uma boa equipe responsável pela qualidade visual do game.

Camadas, detalhes dos personagens, do mapa etc.
Um bom grupo de programadores vai se dedicar única e exclusivamente a parte gráfica.

Mas eles te explicaram todas as funções que o módulo video.py tem, então para detectar a resolução correta, basta rodarmos a função resolucao() do módulo video.py

Fazemos isso assim:
video.resolucao()

E prontinho, a resolução é detectada e carregada corretamente.

Módulo logica.py

Um personagem da infantaria, com espada e escuto é lento, porém as flechas dos arqueiros ferem ele muito pouco.

Porém se uma catapulta atirar em sua direção, muitos morrem.
Talvez seja interessante mandar a cavalaria ir na frente, destruir essas catapultas, mas tendo cuidado para não serem pegos pelos arqueiros, que atiram de longe.

Pessoal, isso tudo é lógica. Envolve Matemática (escudo aguenta 4 golpes por segundo, ele dá o golpe de espada a cada 2s, se você evoluir seu treinamento, ele luta mais rápido e desfere mais fortemente os golpes), vários cálculos.

Deixa que a equipe de lógica faz essa parte do código e coloca tudo no módulo logica.py, então para iniciar uma batalha, basta rodar:
logica.batalha_iniciar()

Ficou claro a função dos módulos?
São arquivos com trechos de códigos relacionados, organizam nosso projeto, fica mais fácil de criar programas maiores.

No tutorial seguinte, vamos te ensinar como criar e usar melhor seus módulos Python.