Números
Em Python existem três tipos numéricos, são eles:
- int
- float
- complex
É importante lembrarmos que tudo em Python é um objeto, sendo assim, tipos de dados são classes e variáveis são instâncias (objetos) dessas classes, não se preocupe que veremos esses aspectos com mais detalhe ao longo do guia.
Variáveis do tipo numérico são criadas quando atribuimos valores a elas:
a = 27 # intb = 22.2 # floatc = 3j # complex
Para verificarmos qual classe a variável pertence, podemos utilizar a função type():
print(type(a)) # <class 'int'>print(type(b)) # <class 'float'>print(type(c)) # <class 'complex'>
Int
Inteiros são números positivos, negativos, que não apresentam casas decimais, seu tamanho é limitado apenas pela capacidade de memória disponível:
a = 3b = 342907249723902c = -100print(type(a)) # <class 'int'>print(type(b)) # <class 'int'>print(type(c)) # <class 'int'>
Float
Floats ou "números de ponto flutuante" são números positivos ou negativos que podem conter uma ou mais casas decimais:
a = 23.3b = 2.0c = -17.78print(type(a)) # <class 'float'>print(type(b)) # <class 'float'>print(type(c)) # <class 'float'>
Podemos acrescentar o caracter e ou E seguido por um número inteiro positivo ou negativo para especificar a notação científica.
e = 35e4print(type(e)) # <class 'float'>print(e) # 350000.0E = 3.8e-2print(type(E)) # <class 'float'>print(E) # 0.038
O valor máximo que um float pode ter é aproximadamente 1.8×10^308
. Qualquer número maior que este é indicado pelo valor inf (infinity).
print(1.79e308) # 1.79e+308print(1.8e308) # inf
Entretanto, o valor mínimo que um float pode ter é aproximadamente 5.0×10^-324
. Qualquer número menor que este é considerado 0 (zero).
print(5e-324) # 5e-324print(5e-325) # 0.0
Complex
Números complexos são escritos com j
representando a parte imaginária. Eles podem ser escritos complex(3,4)
ou 3 + 4j
. Um número complexo Python c
é armazenado internamente usando coordenadas Cartesianas ou Retangulares.
Vejamos alguns exemplos:
a = 2+4jb = -3jc = complex(3,4)print(type(a)) # <class 'complex'>print(type(b)) # <class 'complex'>print(type(c)) # <class 'complex'>
Obtendo as partes Real e Imaginária de um número complexo:
print(c.real) # 3.0print(c.imag) # 4.0
Operações
Realizando a operação de adição com números complexos:
x = complex(4,3)y = complex(-1,4)z = complex(2,1)print(x + y) # (3+7j)
Acrescentando um escalar adicionará à parte real:
print(x + 1) # (5+3j)
Também podemos realizar a operação de multiplicação com números complexos:
print(x * y) # (-16+13j)
Multiplicação por um Escalar:
print(x * 2) # (8+6j)
Extensão
A função abs(z)
retorna a extensão do número complexo z
, em outras palavras, representa o cálculo da seguinte fórmula:
print(abs(z)) # 2.23606797749979
Também podemos realizar este cálculo com o auxílio da função sqrt() da biblioteca math.
from math import sqrtsqrt(z.real**2 + z.imag**2) # 2.23606797749979
Ângulo
A função phase()
retorna o ângulo x
em radianos, porém, para usá-la teremos que importar a biblioteca cmath em nosso código.
Esta biblioteca nos traz funções matemáticas específicas para números complexos.
import cmathprint(cmath.phase(x)) # 0.6435011087932844print(phase(complex(-1.0, 0.0))) # 3.1415926535897931print(phase(complex(-1.0, -0.0))) # -3.1415926535897931
O resultado estará entre [-π, π]
Constante π and e
A biblioteca cmath também nos traz constantes matemáticas como e e pi:
print(cmath.pi) # 3.141592653589793print(cmath.e) # 2.718281828459045
Números Aleatórios
Embora Python não tenha uma função random() para nos gerar um número aleatório, existe um módulo construído em Python chamado random
que nos permite criar números aleatórios:
import randomprint(random.randrange(1,10))
A função acima gera números entre 1 e 9.
Caso queira saber mais detalhes sobre o módulo random
você pode visitar sua Referência.
Conversão de Números
A linguagem Python nos permite converter entre tipos numéricos.
k = 3i = 7.7z = 4jprint(type(k)) # <class 'int'>print(type(i)) # <class 'float'>print(type(z)) # <class 'complex'>
Convertendo de int para float:
print(float(k)) # 3.0
Convertendo de float para int:
print(int(i)) # 7
Convertendo de int para complex:
print(complex(k)) # (3+0j)
Importante lembrar que não podemos converter um número complexo para outro tipo numérico.
Bases
Normalmente escrevemos inteiros na base 10. No entanto, Python nos permite escrever inteiros nos formatos Hexadecimal (base 16), Octal (base 8) e Binário (base 2).
Podemos fazer isso adicionando um dos seguintes prefixos ao número inteiro:
Prefixo | Interpretação | Base |
---|---|---|
0b ou 0B | Binário | 2 |
0o ou 0O | Octal | 8 |
0x or 0X | Hexadecimal | 16 |
Para esclarecer o funcionamento, vejamos alguns exemplos:
print(0b01111111) # 127print(0o10) # 8print(0XFF) # 255
O método bin() converte e retorna a string binária equivalente de um determinado inteiro.
bin(255) # '0b11111111'
Se quisermos convertê-lo de volta para o valor inteiro, podemos usar a função int(), passando a base 2 como argumento:
int('0b11111111',2) # 255
O método oct() converte e retorna a string octal equivalente de um determinado inteiro.
oct(8) # '0o10'
Se quisermos convertê-lo de volta para o valor inteiro, podemos usar a função int(), passando a base 8 como argumento:
int('0o10',8) # 8
O método hex() converte e retorna a string hexadecimal equivalente de um determinado inteiro.
hex(255) # '0xff'
Se quisermos convertê-lo de volta para o valor inteiro, podemos usar a função int(), passando a base 16 como argumento:
int('0xff',16) # 255
Lembre sempre que números são elementos essenciais e fundamentais na programação e que vamos utilizar muito eles!