Lesson 2
Números inteiros e flutuantes
1. Aritmética Integral
Nós já conhecemos os seguintes operadores que podem ser aplicados aos números: + , - , * e ** . O operador de divisão / para inteiros fornece um número real de ponto flutuante (um objeto do tipo float ). A exponenciação ** também retorna um float quando a potência é negativa:
print(17 / 3) # dá 5.66666666667 print(2 ** 4) # dá 16 print(2 ** -2) # dá 0,25
Há uma operação especial para divisão inteira, onde o restante é descartado: // . A operação que produz um resto de tal divisão se parece com % . Ambas as operações sempre geram um objeto do tipo int .
print(17 / 3) # dá 5.66666666667 print(17 // 3) # dá 5 print(17 % 3) # dá 2
2. Números de ponto flutuante
Quando lemos um valor inteiro, lemos uma linha com input() e depois convertemos uma string para inteiro usando int() . Quando lemos um número de ponto flutuante, precisamos converter a string para float usando float() :
x = float(input()) print(x)
Flutuadores com valor absoluto muito grande ou muito pequeno podem ser escritos usando uma notação científica. Por exemplo, a distância da Terra ao Sol é 1.496 · 10 11 ou 1.496e11 em Python. A massa de uma molécula da água é 2.99 · 10 -23 , ou 2.99e-23 em Python.
Pode-se converter objetos flutuantes em objetos int, descartando-se a parte fracionária usando a função int() . Esta função demonstra o chamado arredondamento em direção ao comportamento zero :
print(int(1.3)) # dá 1 print(int(1.7)) # dá 1 print(int(-1.3)) # dá -1 print(int(-1.7)) # dá -1
Há também uma round() funções round() que executa o arredondamento usual:
print(round(1.3)) # dá 1 print(round(1.7)) # dá 2 print(round(-1.3)) # dá -1 print(round(-1.7)) # dá -2
Números reais de ponto flutuante não podem ser representados com precisão exata devido a limitações de hardware. Isso pode levar a efeitos incômodos. Veja os documentos do Python para os detalhes.
print(0.1 + 0.2) # dá 0,30000000000000004
3. módulo de matemática
O Python possui muitas funções auxiliares para cálculos com floats. Eles podem ser encontrados no módulo de math .
Para usar este módulo, precisamos primeiro importá-lo escrevendo a seguinte instrução no início do programa:
import math
Por exemplo, se quisermos encontrar um valor máximo para x - o menor inteiro não menor que x - nós chamamos a função apropriada do módulo de matemática: math.ceil(x) . A sintaxe para chamar funções de módulos é sempre a mesma: module_name.function_name(argument_1, argument_2, ...)
import math x = math.ceil(4.2) print(x) print(math.ceil(1 + 3.8))
Existe outra maneira de usar funções dos módulos: para importar certas funções, nomeando-as:
from math import ceil x = 7 / 2 y = ceil(x) print(y)
Algumas das funções que lidam com números - int() , round() e abs() (valor absoluto aka módulo) - são embutidas e não requerem nenhuma importação.
Todas as funções de qualquer módulo Python padrão estão documentadas no site oficial do Python. Aqui está a descrição para o módulo de matemática . A descrição de algumas funções é dada:
| Função | Descrição |
|---|---|
| Arredondamento | |
floor(x) | Retorna o piso de x, o maior inteiro menor ou igual a x. |
ceil(x) | Retorna o teto de x, o menor inteiro maior ou igual a x. |
| Raízes e logaritmos | |
sqrt(x) | Retornar a raiz quadrada de x |
log(x) | Com um argumento, retorne o logaritmo natural de x (para base e). Com dois argumentos, retorne o logaritmo de x para a base especificada |
e | A constante matemática e = 2,71828 ... |
| Trigonometria | sin(x) | Devolve o seno de x radianos |
asin(x) | Retornar o arcsine de x, em radianos |
pi | A constante matemática π = 3,1415 ... |