Python é uma linguagem de tipagem dinâmica, em que o tipo da variável é definido de acordo com o valor que ela está recebendo.
Guia do artigo:
Na Listagem 1 vemos um exemplo de declaração de uma variável.
numero = 10
No código acima temos a variável numero recebendo o valor 10. Dado que esse valor é um inteiro, o tipo da variável será int.
O Python permite que o tipo de uma variável seja alterado ao longo do código. Um exemplo disso pode ser visto na Listagem 2.
numero = "15"
numero = 15
Apesar dessa característica, o Python não converte automaticamente tipos de dados incompatíveis em operações. Por exemplo, em uma soma entre um número inteiro e uma string, o resultado será um erro, conforme demonstrado na Listagem 3.
numero_1 = 10
numero_2 = "15"
numero_3 = numero_1 + numero_2
print(numero_3)
Isso acontece porque o Python não vai converter a String “15” para que a mesma possa ser usada como um inteiro na operação de soma.
Já no exemplo abaixo, não teremos erro, pois o tipo Booleano é um subtipo do tipo numérico inteiro.
numero = True + 1
Para saber o tipo de uma variável usaremos a função type(), que retorna o tipo de qualquer variável que ela receba como parâmetro. Vamos usar o código anterior para ver na prática como isso funciona.
numero_1 = 10
numero_2 = "15"
print(type(numero_1))
print(type(numero_2))
O resultado do código da Listagem 5 será Int para a variável numero_1 e String para a variável numero_2.
Tipo Numérico
Os tipos de dados usados para números se dividem em três conjuntos:
- Inteiros
- Números de ponto flutuante
- Complexos
Vejamos cada um deles.
Tipo Inteiro
Esse tipo representa os números inteiros positivos e negativos. Um exemplo desse tipo é mostrado no código da Listagem 6.
numero = 5 # Criação da variável numero
print(type(numero)) # Exibindo o tipo da variável
# que será int
O intervalo de valor desse tipo é ilimitado e está sujeito apenas à capacidade da memória.
- 0o1, 0o20, 0o377 # Representação Octal
- 0x01, 0x10, 0xFF # Representação Hexadecimal
- 0b10000, 0b11111111 # Representação binária
Ponto Flutuante (float)
Esses são números reais, que contém casas decimais. Por exemplo, a altura de uma pessoa ou o seu peso devem ser representadas usando números de ponto flutuante. Na Listagem 7 temos um exemplo no qual criamos uma variável desse tipo.
altura = 1.79 # Declaração da variável altura
print(type(altura)) # Impressão do tipo da variável "altura"
O código acima vai retornar o tipo float.
Outras linguagens possuem o tipo double para representar números de ponto flutuante. Em Python usamos float e, caso seja necessária uma precisão de casas decimais, podemos usar Decimal. A Listagem 8 mostra a maneira de usar esse tipo.
from decimal import Decimal
numero = Decimal('0.1')
Na linha 1, importamos o módulo decimal, para que esse tipo esteja disponível no código. E na linha 3, invocamos o construtor Decimal() para criar o objeto numero, contendo o número desejado. Note que o construtor de Decimal recebe uma string como parâmetro.
Complexos
Os números complexos são mais utilizados na engenharia e pesquisa. A parte imaginária do número recebe a letra j ou J. Na Listagem 9 temos um exemplo de um número complexo.
numero = 1j * 1J
print(type(numero))
A criação da variável fica na linha 1, enquanto a linha 3 tem a impressão do tipo da variável. O resultado será o tipo complex.
Booleanos (bool)
O tipo Booleano é um subtipo Int e por isso pode ser representado pelos valores True e False. Quando uma variável é definida como True, seu valor é verdadeiro. E no caso de receber o valor False, seu valor é falso.
O exemplo da Listagem 10 mostra a declaração de uma variável do tipo Booleano.
var1 = True
var2 = False
print(type(var1))
print(type(var2))
As linhas 1 e 2 criam variáveis do tipo Booleano, e nas linhas 4 e 5, o tipo delas é impresso.
No Python, quando comparado com True o número 1 retorna true e todos os demais retornam false. Vejamos um exemplo em uma condicional na Listagem 11.
s = 1
if s == True:
print("true")
else:
print("false")
O código acima terá como resultado true, pois o valor 1 vai funcionar de forma semelhante ao valor Booleano True.
Caso a variável s tivesse o valor diferente de 1 o resultado seria false, como mostra a Listagem 12.
s = 2
if s == True:
print("true")
else:
print("false")
Apesar de ser possível utilizar números inteiros em expressões lógicas isso deve ser feito com muito cuidado.
Nesse artigo introduzimos os tipos de dados em Python, iniciando pelos numéricos. Vimos também que esse tipo é dividido em subtipos que podem ser usados para situações diferentes. Nos exemplos dados foi mostrado a forma de declará-los, o que nos permitirá fazer instruções com eles, como operações matemáticas.