Variáveis e tipos
Todo programa precisa lembrar de coisas. Um quiz precisa do nome do jogador. Um jogo precisa da pontuação atual. Um script de clima precisa da cidade que você está consultando. Python usa variáveis para isso: nomes que você anexa a valores para poder usá-los em todo seu programa.
player_name = "Maria"
score = 0
city = "São Paulo"Três linhas, três coisas que o Python agora lembra. Para cada uma, Python calcula o valor à direita primeiro, depois o armazena sob o nome à esquerda. Use esse nome depois e Python devolve o valor para você.
Armazenando um valor
O sinal = confunde quase todo mundo vindo da aula de matemática. Em Python, = não significa "igual". Significa armazene este valor sob este nome:
city = "São Paulo"city recebe "São Paulo". Você está dizendo ao Python: lembre-se de "São Paulo" e rotule como city.
Você pode substituir o valor de uma variável a qualquer momento. Python usa o mais recente:
score = 0
score = 10 # score agora é 10
score = 15 # score agora é 15= não é "igual" da aula de matemática, é "guarde este valor sob este nome". Mude quando quiser e o Python mantém o mais novo. Sem declarações, sem configuração, você o nomeia e ele existe. Demorei muito tempo para parar de pensar demais nisso. Nomeando suas variáveis
Você escolhe o nome. Python tem algumas regras difíceis, e a comunidade segue convenções que valem a pena adotar desde o primeiro dia. Nomes claros tornam o código legível semanas depois. Nomes criptografados causam dor.
Regras que o Python impõe:
- Letras, dígitos e underscores apenas. Sem espaços ou hífens.
- Deve começar com uma letra ou underscore, nunca um dígito
- Sensível a maiúsculas:
score,Score, eSCOREsão três variáveis diferentes
Convenções que todo mundo segue (PEP 8):
| Coisa | Estilo | Exemplo |
|---|---|---|
| Variáveis e funções | snake_case | user_name, total_price |
| Constantes | UPPER_SNAKE_CASE | MAX_RETRIES, BASE_URL |
| Classes | PascalCase | UserAccount, DataLoader |
# nomes claros, legíveis à primeira vista
user_name = "Maria"
total_price = 49.99
is_logged_in = True
MAX_RETRIES = 3
# você vai se arrepender destes em uma hora
x = "Maria"
tp = 49.99
b = TrueUma armadilha que vale a pena conhecer cedo: não nomeie uma variável após um built-in do Python como list, input, type, ou print. Python permite, mas você silenciosamente quebra o built-in para o resto daquele escopo e os erros resultantes são difíceis de rastrear.
snake_case e você está ótimo. Meu único erro de iniciante: não chame uma variável de list ou print. Python deixa, depois tudo fica estranho mais tarde sem nenhum aviso. O que você pode armazenar
Python tem quatro tipos que você usará em quase todo programa. Python descobre qual tipo você quer pela forma como escreve o valor. Você nunca declara um tipo explicitamente.
Texto (str)
Qualquer texto vai dentro de aspas, simples ou duplas. As aspas dizem ao Python que você quer caracteres literais, não um nome de variável. Uma vez criada, uma string não pode ser mudada no lugar. O capítulo Strings cobre tudo que você pode fazer com elas.
player_name = "Maria"
city = "São Paulo"
message = 'Fim de jogo'Se seu texto contém um apóstrofo, use aspas duplas para evitar ter que escapar:
note = "É um ótimo dia"
note = 'É um ótimo dia' # mesmo resultadoNúmeros inteiros (int)
Números inteiros vão sem aspas ou ponto decimal. Python os chama de inteiros. Eles podem ser tão grandes quanto você precisa; Python lida com números arbitrariamente grandes sem nenhum esforço especial de sua parte.
score = 0
age = 28
population = 8_100_000_000 # underscores são apenas para legibilidade8_100_000_000 estão lá apenas para você poder ler. Números decimais (float)
Qualquer número com ponto decimal é um float. Funcionam conforme esperado para a maioria dos cálculos. Uma coisa a saber: alguns valores decimais não podem ser armazenados exatamente em binário, então você pode ter um pequeno erro de arredondamento:
price = 4.99
temperature = 36.6
0.1 + 0.2 # 0.30000000000000004Para o trabalho do dia a dia isso raramente importa. Para cálculos financeiros onde frações de centavo contam, Python tem um módulo decimal que lida corretamente. Isso é coberto no capítulo Numbers.
0.1 + 0.2 dá 0.30000000000000004. Não é bug, é binário. Para dinheiro, alcance decimal.Decimal. Verdadeiro ou Falso (bool)
Algumas coisas estão ligadas ou desligadas. Python usa booleanos para isso: exatamente dois valores, True e False. Parecem menores neste estágio, mas cada condição e ramificação em seu programa funciona em um booleano.
is_logged_in = True
has_errors = FalsePython também trata certos valores como se fossem False quando usados em uma condição: 0, 0.0, "", e None (Python de "sem valor aqui") todos se comportam como False. Tudo o resto se comporta como True. Isso se torna útil no capítulo Control flow.
True e False, e estão atrás de cada if que você jamais escreverá. O bit divertido: 0, "", [] e None todos contam como False, tudo mais conta como True. Verificando e convertendo tipos
Quando você não tem certeza qual tipo um valor é, type() o diz. Para verificar se um valor é um tipo específico, isinstance() é a ferramenta mais confiável:
print(type("hello")) # <class 'str'>
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type(True)) # <class 'bool'>
isinstance(42, int) # True
isinstance("hi", str) # TruePython não mistura tipos automaticamente. Concatenar uma string e um número levanta um TypeError:
score = 42
print("Your score is " + score) # TypeError
print("Your score is " + str(score)) # funcionaConverta explicitamente usando o nome do tipo como uma função:
| Call | Resultado |
|---|---|
str(42) | "42" |
int(3.9) | 3 (trunca, não arredonda) |
float("3.14") | 3.14 |
int("3.14") | ValueError: não pode converter uma string decimal para int diretamente |
int(float("3.14")) | 3 (converta para float primeiro, depois para int) |
bool(0) / bool("") | False |
type() diz o que algo é, isinstance() verifica se é um tipo dado. E Python não colará uma string e um número juntos, então converta primeiro com str() ou int(). Todo mundo tropeça nisso uma vez. Na prática
Os quatro tipos funcionando juntos em um script pequeno. As linhas de saída usam f-strings para incorporar valores em texto: coloque f antes da aspas de abertura e envolva qualquer variável em {}. Python a substitui pelo valor real da variável. Você aprenderá sobre elas adequadamente no próximo capítulo.
player_name = "Maria"
level = 3
accuracy = 0.94
is_premium = True
print(f"{player_name} is on level {level} with {accuracy:.0%} accuracy.")
print(f"Premium account: {is_premium}")Os tipos importam porque level + 1 funciona e player_name + 1 não. Cada variável contém exatamente uma espécie de coisa; Python não as misturará silenciosamente para você.

