Se você está começando a programar em Python, entender tipos de variáveis é um dos primeiros passos para escrever códigos que realmente façam sentido.
Uma variável pode armazenar um número, um texto, uma lista de valores, uma informação lógica ou até mesmo indicar que determinado valor não está disponível. O tipo associado ao valor determina quais operações podem ser realizadas sobre ele.
Neste guia, você vai entender os principais tipos de variáveis em Python, aprender a criá-las, descobrir seus tipos, converter valores e escolher a estrutura mais adequada para cada situação.
Os exemplos foram preparados para Python 3.12 e não dependem de bibliotecas externas.
Importante: tecnicamente, Python trabalha com objetos que possuem tipo, valor e identidade. Por isso, é mais preciso falar em variáveis que referenciam objetos de determinado tipo do que imaginar que a variável possui um tipo fixo.
O que são variáveis em Python?
Uma variável é um nome utilizado para fazer referência a um valor dentro do programa.
Por exemplo:
nome = "Tiago"
idade = 25
altura = 1.75
Nesse exemplo, temos três nomes associados a diferentes valores:
-
nomereferencia uma string; -
idadereferencia um inteiro; -
alturareferencia um número de ponto flutuante.
Em Python, usamos o sinal = para realizar uma atribuição.
cidade = "São Paulo"
A partir desse momento, podemos utilizar cidade em outras partes do programa:
print(cidade)
Resultado:
São Paulo
Python possui tipagem dinâmica
Python é uma linguagem de tipagem dinâmica. Isso significa que você não precisa declarar previamente que uma variável será int, str ou outro tipo.
Por exemplo:
valor = 10
valor = "dez"
A mesma variável pode passar a referenciar outro objeto posteriormente.
Isso não significa que Python não tenha tipos. Todos os objetos possuem um tipo; a linguagem apenas não exige que você declare o tipo da variável antes da atribuição. Python do zero: guia completo
Como criar uma variável em Python?
Criar uma variável é simples: basta escolher um nome e atribuir um valor.
nome = "Maria"
idade = 30
ativo = True
Não é necessário utilizar palavras como var, let ou const.
Regras básicas para nomes de variáveis
Prefira nomes claros:
nome_usuario = "Carlos"
idade_usuario = 28
Em vez de:
x = "Carlos"
y = 28
Também é importante evitar nomes que possam causar confusão com palavras reservadas ou funções importantes da linguagem.
Uma convenção comum em Python é utilizar snake_case:
nome_completo = "Ana Souza"
data_nascimento = "10/05/2000"
Principais tipos de variáveis em Python
Python possui diversos tipos embutidos. Neste artigo, vamos concentrar nossa atenção nos mais importantes para quem está começando:
| Tipo | Exemplo | Utilização |
|---|---|---|
int |
10 |
Números inteiros |
float |
10.5 |
Números com ponto decimal |
str |
"Python" |
Textos |
bool |
True |
Valores verdadeiro/falso |
list |
[1, 2, 3] |
Coleções ordenadas e mutáveis |
tuple |
(1, 2, 3) |
Coleções ordenadas e imutáveis |
set |
{1, 2, 3} |
Conjuntos de valores únicos |
dict |
{"nome": "Ana"} |
Dados organizados em chave e valor |
None |
None |
Ausência de valor |
Esses tipos fazem parte dos tipos embutidos da linguagem Python.
1. int: números inteiros
O tipo int representa números inteiros, positivos ou negativos.
idade = 25
quantidade = 10
temperatura = -5
Também podemos realizar operações matemáticas:
a = 10
b = 3
soma = a + b
subtracao = a - b
multiplicacao = a * b
Python suporta inteiros de precisão ilimitada, dentro dos limites de memória disponíveis.
Quando usar int?
Use int quando estiver trabalhando com valores inteiros, como:
-
idade;
-
quantidade de produtos;
-
número de tentativas;
-
pontuação;
-
número de páginas.
2. float: números decimais
O tipo float representa números de ponto flutuante.
preco = 49.90
altura = 1.75
temperatura = 23.5
Uma operação de divisão comum também produz um float:
resultado = 10 / 2
print(resultado)
Resultado:
5.0
O Python diferencia 5 de 5.0: o primeiro é int e o segundo é float.
Quando usar float?
É comum utilizar float para:
-
preços;
-
medidas;
-
porcentagens;
-
médias;
-
temperaturas;
-
cálculos que envolvem casas decimais.
Atenção: para aplicações financeiras que exigem representação decimal exata,
floatnem sempre é a melhor escolha. Python possui tipos específicos, comodecimal.Decimal, para situações que exigem controle decimal.
3. str: textos
str representa sequências de caracteres, ou seja, textos.
nome = "Tiago"
cidade = "São Paulo"
mensagem = "Olá, mundo!"
Strings podem ser escritas utilizando aspas simples ou duplas:
nome = 'Tiago'
cidade = "São Paulo"
Também podemos combinar strings:
nome = "Tiago"
mensagem = "Olá, " + nome
print(mensagem)
Resultado:
Olá, Tiago
Strings são imutáveis em Python. Isso significa que, depois que uma string é criada, seu conteúdo não pode ser alterado diretamente.
Quando usar str?
Use str para informações como:
-
nomes;
-
cidades;
-
endereços;
-
mensagens;
-
códigos;
-
textos digitados pelo usuário.
4. bool: verdadeiro ou falso
O tipo bool representa valores lógicos.
Existem apenas dois valores booleanos:
True
False
Por exemplo:
usuario_logado = True
tem_permissao = False
Esse tipo aparece constantemente em estruturas condicionais:
idade = 20
maior_de_idade = idade >= 18
print(maior_de_idade)
Resultado:
True
O tipo bool possui exatamente as duas instâncias True e False.
Quando usar bool?
É útil para representar estados como:
-
usuário está logado ou não;
-
produto está disponível ou não;
-
pagamento foi aprovado ou não;
-
uma condição foi satisfeita ou não.
5. list: listas
Uma list permite armazenar vários valores em uma coleção ordenada.
frutas = ["maçã", "banana", "laranja"]
Podemos acessar os elementos utilizando índices:
print(frutas[0])
Resultado:
maçã
Uma característica importante das listas é que elas são mutáveis.
Isso significa que podemos alterar seu conteúdo:
frutas[1] = "uva"
print(frutas)
Resultado:
['maçã', 'uva', 'laranja']
Também podemos adicionar elementos:
frutas.append("abacaxi")
Listas são estruturas bastante versáteis e podem conter valores de diferentes tipos, embora seja comum utilizar elementos relacionados. como criar um sistema de menus em Python usando funções e listas
Quando usar list?
Use uma lista quando precisar armazenar uma coleção que pode ser modificada:
produtos = ["notebook", "mouse", "teclado"]
Esse tipo é especialmente útil quando você pretende adicionar, remover ou alterar elementos.
6. tuple: tuplas
A tuple é semelhante a uma lista, mas possui uma diferença fundamental: é imutável.
coordenadas = (10, 20)
Depois de criada, não podemos alterar diretamente seus elementos:
coordenadas[0] = 50
Essa operação gera um erro.
Tuplas são sequências ordenadas e imutáveis.
Quando usar tuple?
Uma tupla pode ser interessante quando você deseja representar um conjunto de valores que não deve ser alterado.
Por exemplo:
data_nascimento = (10, 5, 2000)
Ou coordenadas:
ponto = (100, 200)
7. set: conjuntos
O tipo set representa um conjunto de elementos únicos.
numeros = {1, 2, 3, 4}
Se houver valores repetidos, o conjunto mantém apenas uma ocorrência:
numeros = {1, 2, 2, 3, 3, 3}
print(numeros)
O resultado contém apenas valores únicos.
Uma característica importante é que set é útil quando a preocupação principal é trabalhar com conjuntos de valores sem duplicação, e não com uma sequência indexada.
Quando usar set?
Imagine que você tenha uma lista de categorias:
categorias = [
"Python",
"Java",
"Python",
"JavaScript",
"Python"
]
Podemos obter os valores únicos:
categorias_unicas = set(categorias)
print(categorias_unicas)
Isso pode ser útil para eliminar duplicidades.
8. dict: dicionários
O dict representa dados organizados em pares de chave e valor.
usuario = {
"nome": "Tiago",
"idade": 25,
"ativo": True
}
Podemos acessar um valor usando sua chave:
print(usuario["nome"])
Resultado:
Tiago
Também podemos alterar valores:
usuario["idade"] = 26
E adicionar novas informações:
usuario["cidade"] = "São Paulo"
Dicionários são objetos mutáveis e fazem o mapeamento entre chaves e valores.
Quando usar dict?
Dicionários são muito úteis quando cada informação possui um nome.
Por exemplo:
produto = {
"nome": "Notebook",
"preco": 3500.00,
"estoque": 10
}
Nesse caso, acessar:
produto["preco"]
é mais expressivo do que trabalhar apenas com posições numéricas.
9. None: ausência de valor
None representa a ausência de um valor.
resultado = None
Isso não significa 0, False ou uma string vazia.
São valores diferentes:
a = None
b = 0
c = False
d = ""
None é frequentemente utilizado quando uma variável ainda não possui um valor definido ou quando uma função não retorna um valor significativo.
Por exemplo:
usuario = None
if usuario is None:
print("Nenhum usuário encontrado")
Resultado:
Nenhum usuário encontrado
Como descobrir o tipo de uma variável com type()
Quando estiver estudando Python, uma das funções mais úteis é type().
Ela permite verificar o tipo de um objeto.
idade = 25
print(type(idade))
Resultado:
<class 'int'>
Outro exemplo:
nome = "Tiago"
print(type(nome))
Resultado:
<class 'str'>
Podemos testar vários valores:
print(type(10))
print(type(10.5))
print(type("Python"))
print(type(True))
print(type([1, 2, 3]))
print(type((1, 2, 3)))
print(type({1, 2, 3}))
print(type({"nome": "Tiago"}))
print(type(None))
Essa função é particularmente útil para entender o comportamento de um código e investigar erros.
Como converter tipos de dados em Python
Em alguns programas, precisamos transformar um valor de um tipo para outro.
Python oferece funções embutidas para várias dessas conversões, incluindo int(), float(), str(), bool(), list(), tuple() e set().
Convertendo para int
numero = "10"
numero = int(numero)
print(numero)
print(type(numero))
Agora numero é um inteiro.
Convertendo para float
numero = "10.5"
numero = float(numero)
print(numero)
Convertendo para str
idade = 25
texto = str(idade)
print("Tenho " + texto + " anos.")
Convertendo para bool
valor = 1
resultado = bool(valor)
print(resultado)
Resultado:
True
A conversão deve ser feita com atenção porque nem todo valor pode ser convertido diretamente para qualquer tipo.
Por exemplo:
numero = int("abc")
Esse código gera um erro porque "abc" não representa um número inteiro válido.
Variáveis mutáveis e imutáveis
Essa é uma diferença importante quando começamos a trabalhar com estruturas de dados.
Tipos imutáveis
Alguns objetos não podem ter seu conteúdo alterado depois de criados.
Entre os tipos que estamos estudando, podemos citar:
-
int; -
float; -
str; -
bool; -
tuple; -
None.
Por exemplo, uma string não pode ser modificada diretamente:
nome = "Python"
# Isso gera erro:
nome[0] = "J"
Quando fazemos uma operação que parece alterar uma string, na realidade estamos criando outro objeto ou atribuindo outro valor.
Tipos mutáveis
Outros objetos podem ter seu conteúdo alterado.
Entre eles:
-
list; -
set; -
dict.
Por exemplo:
numeros = [1, 2, 3]
numeros.append(4)
print(numeros)
Resultado:
[1, 2, 3, 4]
Essa diferença se torna especialmente importante quando duas variáveis fazem referência ao mesmo objeto. A documentação do Python demonstra esse comportamento com listas: uma atribuição simples não cria automaticamente uma cópia da lista.
Variável não é a mesma coisa que tipo de dado
Essa distinção evita muita confusão.
Considere:
idade = 25
Podemos pensar em:
-
idade→ nome utilizado para acessar o valor; -
25→ valor; -
int→ tipo do objeto referenciado.
Por isso, quando alguém pergunta “qual é o tipo da variável?”, normalmente está querendo descobrir qual é o tipo do objeto ao qual aquela variável faz referência.
Essa visão fica mais próxima do modelo de objetos do Python, no qual todo objeto possui identidade, tipo e valor.
Erros comuns ao trabalhar com variáveis
1. Usar uma variável antes de atribuir um valor
print(nome)
Se nome ainda não foi definido, Python gera NameError.
A solução é atribuir um valor antes:
nome = "Tiago"
print(nome)
2. Confundir texto com número
Observe:
idade = "25"
Nesse caso, idade é uma str, não um int.
Para converter:
idade = int(idade)
3. Confundir = com comparação
O operador = é utilizado para atribuição:
idade = 25
Já == é utilizado para verificar igualdade:
idade == 25
Essa diferença é fundamental em condições e expressões.
4. Tentar modificar um tipo imutável
Por exemplo:
nome = "Python"
nome[0] = "J"
Strings são imutáveis, portanto essa alteração direta não é permitida.
Como escolher o tipo de variável correto?
Uma maneira simples de pensar é perguntar:
O que estou tentando representar?
Se for uma quantidade inteira:
quantidade = 10
Use int.
Se for um valor decimal:
preco = 49.90
Use float.
Se for texto:
nome = "Tiago"
Use str.
Se for uma resposta de verdadeiro ou falso:
aprovado = True
Use bool.
Se precisar de uma coleção que pode ser modificada:
produtos = ["mouse", "teclado"]
Use list.
Se precisar de uma coleção ordenada que não deve ser alterada:
coordenadas = (10, 20)
Considere tuple.
Se precisar trabalhar com valores únicos:
categorias = {"Python", "Java", "JavaScript"}
Use set.
Se precisar representar informações por meio de chaves e valores:
usuario = {
"nome": "Tiago",
"idade": 25
}
Use dict.
E, quando precisar representar explicitamente a ausência de um valor:
resultado = None
Use None.
Exercícios práticos
Agora é hora de testar o que você aprendeu.
Exercício 1 — Identifique os tipos
Observe:
nome = "Maria"
idade = 30
altura = 1.68
estudando = True
Identifique o tipo de cada variável.
Resposta:
-
nome→str -
idade→int -
altura→float -
estudando→bool
Exercício 2 — Trabalhando com uma lista
Crie uma variável chamada linguagens contendo três linguagens de programação.
Depois:
-
mostre a primeira linguagem;
-
adicione uma quarta linguagem;
-
mostre a lista completa.
Exemplo de solução:
linguagens = ["Python", "Java", "JavaScript"]
print(linguagens[0])
linguagens.append("C#")
print(linguagens)
Exercício 3 — Conversão
Crie uma variável com a idade armazenada como texto:
idade = "25"
Converta-a para int e faça uma operação matemática com ela.
Uma possível solução:
idade = "25"
idade = int(idade)
print(idade + 5)
Exercício 4 — Dicionário
Crie um dicionário representando um produto com:
-
nome;
-
preço;
-
quantidade em estoque.
Depois, mostre apenas o preço.
Exemplo:
produto = {
"nome": "Notebook",
"preco": 3500.00,
"estoque": 10
}
print(produto["preco"])
Conclusão
Entender os tipos de variáveis em Python é fundamental para avançar na linguagem.
Os tipos mais importantes que vimos foram:
-
intpara números inteiros; -
floatpara números de ponto flutuante; -
strpara textos; -
boolpara valores lógicos; -
listpara coleções mutáveis; -
tuplepara sequências imutáveis; -
setpara conjuntos de valores únicos; -
dictpara dados organizados em chave e valor; -
Nonepara representar ausência de valor.
Também vimos como Python utiliza tipagem dinâmica, como verificar tipos com type(), converter valores e diferenciar objetos mutáveis de imutáveis.
Dominar esses fundamentos facilita bastante a construção de programas maiores, porque praticamente todo programa precisa armazenar, transformar e manipular dados.
Se você está construindo sua base em programação, o próximo passo é continuar praticando lógica, variáveis, condições, repetições e estruturas de dados.
Quer fortalecer sua base de programação? Baixe gratuitamente nosso e-book de lógica de programação para iniciantes e avance pelos conceitos de forma progressiva e prática.
Fontes
-
Python 3.12 — Tutorial: Introdução
Documentação oficial — Introdução ao Python -
Python 3.12 — Modelo de dados
Documentação oficial — Data Model -
Python 3.12 — Tipos embutidos
Documentação oficial — Built-in Types -
Python 3.12 — Funções embutidas (
type(),int(),float(),str()etc.)
Documentação oficial — Built-in Functions -
Python 3.12 — Tutorial completo
Documentação oficial — Python Tutorial
