Uma variável é um nome
Uma variável em Python é um nome que você prende a um valor. Você escreve o nome, um sinal de igual e o valor:
Três variáveis, três valores, três tipos. O Python guarda todas lado a lado sem reclamar, e você não precisou contar nada sobre que tipo de valores eram. O valor vem depois do =; o nome vem antes.
Uma vez que a variável existe, você pode usá-la em qualquer lugar onde usaria o próprio valor:
Os nomes fazem com que a penúltima linha se explique sozinha. Esse é o ganho real com bons nomes de variáveis — código que se lê como uma explicação.
Atribuição não é matemática
Uma coisa que pega quem veio das aulas de matemática: = em Python não significa "é igual a". Significa "atribua". Quer dizer "pegue o valor depois do = e prenda ao nome antes dele". O Python avalia o valor primeiro e só depois faz a atribuição.
Então isso é perfeitamente válido:
A linha count = count + 1 não está afirmando que count é igual a count mais um (matematicamente impossível). Está dizendo: calcule count + 1 e depois atribua o resultado de volta a count. O Python avalia a expressão primeiro — 0 + 1, dando 1 — e só então atualiza a variável.
Você vai escrever count = count + 1 o bastante para o Python ter um atalho: count += 1 faz a mesma coisa.
Reatribuição muda a etiqueta, não o valor
Uma variável pode apontar para um valor diferente quando você quiser. O valor antigo não é modificado — a variável simplesmente passa a se referir a outra coisa:
Repare naquela última linha. mood guarda uma string por duas linhas e de repente passa a guardar um inteiro. O Python não reclamou. Isso é tipagem dinâmica — as variáveis não têm tipo fixo, só os valores têm. A flexibilidade ajuda quando você está prototipando e dói quando uma variável muda de significado dentro de uma função sem você perceber. O hábito seguro é escolher um nome que combine com o que o valor representa, e depois manter a variável representando essa única coisa durante toda a sua vida.
As regras para nomes de variáveis
O Python aceita nomes que:
- Começam com uma letra ou um underscore (
_). - Contêm letras, dígitos e underscores.
- Não são uma palavra reservada (
if,for,class,returne algumas dezenas mais).
Então esses são válidos:
E esses não são:
2nd_user— não pode começar com dígito.user-name— hífens não são permitidos (o Python lê como subtração).class— palavra reservada.user name— espaços não entram em nomes.
Os nomes diferenciam maiúsculas e minúsculas, como você já sabe: total, Total e TOTAL são três variáveis distintas. O Python não vai perceber o typo para você.
Convenções de nomeação
Além das regras duras, a comunidade Python tem convenções — não impostas pelo interpretador, mas universais em todo o ecossistema:
lower_snake_casepara variáveis e funções comuns:retry_count,fetch_profile.UPPER_SNAKE_CASEpara constantes:MAX_RETRIES = 5.PascalCasepara nomes de classes (chegaremos lá mais adiante).- Underscore no começo (
_something) é uma dica de que o nome é privado. Não é imposto — é só uma convenção. - Underscore no fim (
class_) permite usar um nome que entraria em conflito com uma palavra reservada.
Se você se grudar nelas, seu código vai se parecer com o Python que todo mundo já escreveu.
Nomes devem descrever significado
Um nome de variável é de graça para digitar, mas caro para ler. Gastar alguns caracteres a mais escolhendo um nome que realmente descreva o que o valor significa poupa muita dor de cabeça para leitores futuros (geralmente você mesmo no futuro).
Compare:
Mesmo código, mesma resposta — mas só a segunda versão te diz o que está acontecendo. Nomes curtos (i, n, x) estão bem em escopos bem pequenos, como contadores de laço, mas fora disso, escreva por extenso.
Atribuição múltipla (use com moderação)
O Python te deixa atribuir o mesmo valor a várias variáveis numa linha só:
Ou desempacotar vários valores de uma vez:
As duas formas estão bem quando deixam o código mais claro (como desempacotar o valor de retorno de uma função). A primeira — = = = encadeado — merece um momento de cuidado: as três variáveis acabam se referindo ao mesmo objeto, o que importa para tipos mutáveis como listas (mais sobre isso depois).
O que você leva
name = valuecria uma variável.- Variáveis não têm tipo; valores têm.
- Os nomes seguem algumas regras duras e muitas convenções suaves — vale respeitar as duas.
- Um nome descritivo é a forma mais barata de documentação.
Na próxima página: que tipos de valores o Python realmente suporta — inteiros, floats, strings, booleanos, e por que ajuda saber qual é qual.
Perguntas frequentes
Como se cria uma variável em Python?
Escolha um nome, coloque um = depois e coloque um valor à direita. age = 30 cria uma variável chamada age com o valor 30. O Python descobre o tipo automaticamente — você não precisa declarar.
Quais são as regras para nomes de variáveis em Python?
Um nome pode conter letras, dígitos e underscores, mas não pode começar com um dígito. Não pode ser uma palavra reservada do Python como if ou class. Os nomes diferenciam maiúsculas de minúsculas: total, Total e TOTAL são três variáveis diferentes. A convenção da comunidade é lower_snake_case.
Uma variável em Python pode mudar de tipo?
Sim. Python tem tipagem dinâmica, então uma variável que guarda um número num momento pode guardar uma string no seguinte. Essa flexibilidade é prática, mas pode te surpreender — se o significado de uma variável muda no meio de uma função, geralmente é sinal de que é hora de escolher um nome novo.