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 ... |