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.

Banner promocional de e-book gratuito sobre Python, com capa 3D do livro “Python: variáveis e funções”, destacando fundamentos de lógica, exemplos práticos, exercícios e linguagem didática para iniciantes.

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:

  • nome referencia uma string;

  • idade referencia um inteiro;

  • altura referencia 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, float nem sempre é a melhor escolha. Python possui tipos específicos, como decimal.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:

  1. mostre a primeira linguagem;

  2. adicione uma quarta linguagem;

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

  • int para números inteiros;

  • float para números de ponto flutuante;

  • str para textos;

  • bool para valores lógicos;

  • list para coleções mutáveis;

  • tuple para sequências imutáveis;

  • set para conjuntos de valores únicos;

  • dict para dados organizados em chave e valor;

  • None para 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.

while em Python e a criação de um sistema de login simples

Fontes