Programacao & Dev

Variáveis em Python: Guia Prático para Iniciantes

Neste tutorial completo, você aprenderá o que são variáveis em Python, sua importância na programação, como declará-las e atribuir valores. Explore os principais tipos de dados (inteiros, strings, floats, booleanos), aprenda a converter entre eles, entenda o escopo (local e global) e adote boas práticas de nomeação. Inclui exemplos práticos e dicas para evitar erros comuns.

Equipe Blueprintblog1 min
Variáveis em Python: Guia Prático para Iniciantes
text
NameError: name 'nome' is not defined

Esse é provavelmente o primeiro erro que aparece pra quem começa a escrever Python. Ele não aparece porque o código está errado na lógica — aparece porque o Python tentou usar um nome que ainda não foi apresentado a ele.

Variáveis são exatamente essa apresentação. Este artigo explica como fazê-la corretamente.


O que é uma variável

Uma variável é um nome que aponta para um valor armazenado na memória. Quando você escreve:

python
idade = 25

Três coisas acontecem: o valor 25 é criado na memória, o nome idade é registrado, e esse nome passa a apontar para aquele valor. A partir desse ponto, sempre que o Python encontrar idade no código, ele vai buscar o valor que aquele nome referencia.

O sinal = aqui não é igualdade matemática. É atribuição. Leia como: "o nome idade recebe o valor 25".

Isso explica por que a linha abaixo — que seria impossível em matemática — é perfeitamente válida em Python:

python
contador = 0
contador = contador + 1
# contador agora vale 1

O Python lê o lado direito primeiro: pega o valor atual de contador (0), soma 1, e atribui o resultado (1) de volta ao nome contador.


Tipos de dados básicos

O valor que uma variável armazena tem um tipo. Python identifica o tipo automaticamente a partir do valor que você atribuiu — sem necessidade de declarar.

python
nome = "Ana"          # str (texto)
idade = 28            # int (número inteiro)
altura = 1.65         # float (número decimal)
ativo = True          # bool (verdadeiro ou falso)

Cada tipo tem comportamentos próprios. Somar dois números funciona diferente de somar duas strings:

python
# soma numérica
a = 10
b = 5
print(a + b)   # 15

# concatenação de texto
primeiro = "Ana"
ultimo = "Lima"
print(primeiro + " " + ultimo)   # Ana Lima

Para saber o tipo de uma variável, use type():

python
print(type(nome))    # <class 'str'>
print(type(idade))   # <class 'int'>
print(type(altura))  # <class 'float'>
print(type(ativo))   # <class 'bool'>

Python é dinamicamente tipado

Em Python, uma variável pode mudar de tipo ao longo do código. Isso é possível — mas raramente é uma boa ideia:

python
x = 10       # x é int
x = "dez"   # x agora é str

# isso funciona, mas confunde quem lê o código

O tipo de uma variável deve refletir o que ela representa. Se um nome muda de tipo no meio do código, provavelmente ele está fazendo coisas demais.


Regras para nomear variáveis

Python aceita qualquer nome que siga três regras:

  1. Começa com letra ou underscore (_)
  2. Contém apenas letras, números e underscores
  3. Não é uma palavra reservada do Python
python
# ✅ nomes válidos
nome = "Carlos"
idade_usuario = 30
_interno = True
valor1 = 100

# ❌ nomes inválidos
1nome = "erro"         # começa com número
nome-usuario = "erro"  # hífen não é permitido
for = "erro"           # palavra reservada do Python

As palavras reservadas — for, if, while, class, return, entre outras — têm significado especial na linguagem e não podem ser usadas como nomes.

Convenção: snake_case

Python usa snake_case por padrão: palavras em minúsculo separadas por underscore. Isso não é obrigatório pela linguagem, mas é o padrão da comunidade — e seguir o padrão torna o código mais legível para qualquer pessoa acostumada com Python.

python
# ✅ padrão Python
nome_completo = "Ana Lima"
total_de_itens = 42
data_de_nascimento = "1995-04-12"

# ❌ foge do padrão (funciona, mas destoa)
nomeCompleto = "Ana Lima"    # camelCase (comum em outras linguagens)
NomeCompleto = "Ana Lima"    # PascalCase (usado para classes em Python)

Bons nomes importam mais do que parece

O computador não liga para o nome de uma variável. x, dado, valor_final_calculado — pra ele é tudo igual. O nome é pra quem lê o código.

python
# ❌ o que isso calcula?
r = p * (1 + t) ** n

# ✅ agora ficou claro
montante = principal * (1 + taxa) ** periodo

Um bom nome descreve o que a variável contém, não como ela foi calculada. resultado_da_soma descreve o processo; total descreve o conteúdo. Prefira o conteúdo.

Evite nomes de letra única, exceto em casos muito específicos como índices de loop curtos ou coordenadas matemáticas onde a convenção já existe (x, y, i).


Atribuição múltipla

Python permite atribuir valores a várias variáveis ao mesmo tempo:

python
# atribuir o mesmo valor a múltiplas variáveis
a = b = c = 0

# atribuir valores diferentes em uma linha
nome, idade, cidade = "Ana", 28, "São Paulo"

print(nome)    # Ana
print(idade)   # 28
print(cidade)  # São Paulo

A segunda forma — chamada de desempacotamento — exige que o número de variáveis seja igual ao número de valores. Se não bater, Python levanta um erro.


Constantes: valores que não devem mudar

Python não tem constantes de verdade — a linguagem não impede que um valor seja reatribuído. A convenção é usar nomes em UPPER_CASE para sinalizar que aquele valor não deve ser alterado:

python
TAXA_DE_JUROS = 0.12
LIMITE_MAXIMO = 1000
PI = 3.14159

Qualquer desenvolvedor que veja um nome em maiúsculas entende que aquele valor é uma constante de configuração — e que alterá-lo no meio do código seria um erro.


Erros comuns com variáveis

NameError — variável usada antes de ser definida:

python
print(nome)        # NameError: name 'nome' is not defined
nome = "Carlos"

O Python executa linha por linha. nome precisa existir antes de ser usado.

TypeError — operação com tipos incompatíveis:

python
idade = 28
mensagem = "Minha idade é " + idade
# TypeError: can only concatenate str (not "int") to str

Para concatenar número com texto, converta primeiro:

python
mensagem = "Minha idade é " + str(idade)
# ou use f-string, que converte automaticamente:
mensagem = f"Minha idade é {idade}"

Variável fora de escopo:

python
def saudacao():
    texto = "Olá"

print(texto)   # NameError: name 'texto' is not defined

Variáveis criadas dentro de funções existem apenas dentro delas. Esse conceito — escopo — é o próximo passo natural depois de dominar variáveis.


O que vale levar

  • Variável é um nome que aponta para um valor. = é atribuição, não igualdade matemática.
  • Python identifica o tipo automaticamente: str, int, float, bool.
  • Use type() para checar o tipo de qualquer valor.
  • Nomes em snake_case, descritivos e sem abreviações obscuras.
  • UPPER_CASE sinaliza constante por convenção — não é imposto pela linguagem.
  • NameError significa que a variável foi usada antes de ser criada. TypeError significa que a operação não faz sentido com aquele tipo.

Variáveis são a base de qualquer programa. O próximo passo é entender como controlar o fluxo de execução — quando uma parte do código roda e quando não roda — com condicionais e loops.


Referências

Tags do artigo

Artigos relacionados

Receba os ultimos artigos no seu email.

Follow Us: