Variáveis e tipos

Todo programa precisa lembrar 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á verificando. Python usa variáveis para isso: nomes que você anexa a valores para poder usá-los em todo o seu programa.
player_name = "Maria"
score = 0
city = "São Paulo"Três linhas, três coisas que Python agora lembra. Para cada uma, Python funciona o valor no lado direito primeiro, depois o armazena sob o nome no lado esquerdo. Use esse nome depois e Python devolve o valor.
Armazenando um valor
O sinal = confunde quase todo mundo vindo da aula de matemática. Em Python, = não significa "equals" (igual). Significa armazenar esse valor sob esse nome:
city = "São Paulo"city recebe "São Paulo". Você está dizendo ao Python: lembre-se de "São Paulo" e rotule-o 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 maths, é "guarde esse valor sob esse nome". Altere quando quiser e Python mantém o mais novo. Sem declarar, sem setup, você nomeia e existe. Levei muito tempo para parar de complicar isso. Nomeando suas variáveis
Você escolhe o nome. Python tem algumas regras rígidas, e a comunidade segue convenções que vale a pena adotar desde o primeiro dia. Nomes claros tornam o código legível semanas depois. Nomes criptográficos causam dor.
Regras que Python impõe:
- Letras, dígitos e sublinhados apenas. Sem espaços ou hífens.
- Deve começar com uma letra ou sublinhado, nunca um dígito
- Sensível a maiúsculas:
score,ScoreeSCOREsão três variáveis separadas
Convenções que todos seguem (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ê se arrependerá disso em uma hora
x = "Maria"
tp = 49.99
b = TrueUma armadilha que vale a pena saber 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 quebará o built-in para o resto desse escopo e os erros resultantes são difíceis de rastrear.
snake_case e você está pronto. Meu único erro de novato: não chame uma variável de list ou print. Python deixa, depois tudo fica estranho depois sem aviso nenhum. 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 você escreve o valor. Você nunca declara um tipo explicitamente.
Texto (str)
Qualquer texto vai dentro de marcas de aspas, simples ou duplas. As aspas dizem ao Python que você quer dizer caracteres literais, não um nome de variável. Uma vez criada, uma string não pode ser alterada no lugar. O capítulo Strings cobre tudo que você pode fazer com elas.
player_name = "Maria"
city = "São Paulo"
message = 'Game over'Se seu texto contém um apóstrofo, use aspas duplas para evitar ter que escapar:
note = "It's a great day"
note = 'It\'s a great day' # mesmo resultado, usando um escapeNúmeros inteiros (int)
Números inteiros vão sem aspas ou ponto decimal. Python os chama inteiros. Eles podem ser tão grandes quanto você precisa; Python manipula números arbitrariamente grandes sem qualquer esforço especial da sua parte.
score = 0
age = 28
population = 8_100_000_000 # sublinhados são apenas para legibilidade8_100_000_000 estão lá apenas para você ler. Números decimais (float)
Qualquer número com um ponto decimal é um float. Eles funcionam como 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 obter um pequeno erro de arredondamento:
price = 4.99
temperature = 36.6
0.1 + 0.2 # 0.30000000000000004Para trabalho cotidiano isso raramente importa. Para cálculos financeiros onde frações de centavo contam, Python tem um módulo decimal que manipula corretamente. Isso é coberto no capítulo Numbers.
0.1 + 0.2 dá 0.30000000000000004. Não é um bug, isso é 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. Eles parecem menores neste estágio, mas toda condição e rama no 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 (o "não há valor aqui" do Python) todos se comportam como False. Tudo mais 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ê escreverá. A parte legal: 0, "", [] e None todos contam como False, tudo mais conta como True. Verificando e convertendo tipos
Quando você não tiver certeza do tipo de um valor, type() diz a você. 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 função:
| Chamada | Resultado |
|---|---|
str(42) | "42" |
int(3.9) | 3 (trunca, não arredonda) |
float("3.14") | 3.14 |
int("3.14") | ValueError: não é possível 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 determinado tipo. E Python não vai colar uma string e um número junto, então converta primeiro com str() ou int(). Todo mundo tropeça nisso uma vez. Na prática
Todos os quatro tipos funcionando juntos em um pequeno script. As linhas de saída usam f-strings para embutir valores em texto: coloque f antes da aspas de abertura e envolva qualquer variável em {}. Python a substitui com o valor real da variável. Você aprenderá 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 coisa; Python não irá silenciosamente misturá-las para você.

