Conversão entre tipos
Objetivo da aula
Converter dados quando a origem e o uso exigirem tipos diferentes.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
Dados nem sempre chegam no tipo que queremos. input(), por exemplo, devolve texto. Se o usuário digita “25” e queremos somar números, precisamos converter esse texto para int ou float. Conversão é uma tentativa: ela pode funcionar ou falhar conforme o conteúdo.
Uma imagem mental para entender
Imagine receber uma etiqueta escrita “25”. Para fazer uma conta, você precisa interpretar essa etiqueta como número. Se a etiqueta disser “vinte e cinco” e sua regra só reconhece dígitos, a interpretação falha. Conversão de tipos é exatamente esse processo explícito de interpretação.
Conceitos essenciais, sem pular etapas
int()
Tenta produzir um inteiro. int("25") funciona; int("25.5") e int("vinte") não representam inteiros no formato esperado e geram erro.
float()
Tenta produzir um número de ponto flutuante. float("25.5") funciona. Em Python, o formato literal usual usa ponto como separador decimal.
str()
Produz representação textual de um valor para composição de mensagens ou armazenamento em contextos que exigem texto.
bool()
Converte pela regra de “truthiness”, que não é uma leitura semântica da palavra. Por exemplo, bool("False") é True porque a string não está vazia. Não use isso para interpretar respostas humanas “sim/não” sem uma regra própria.
Conversão não é validação completa
Conseguir converter "150" para inteiro não prova que 150 é uma idade aceitável para seu sistema. Primeiro você interpreta o tipo; depois verifica a regra do domínio.
Modelo mental
TEXTO RECEBIDO → CONVERSÃO → TIPO ADEQUADO → VALIDAÇÃO DE REGRA → USO
Exemplo 1 — primeiro veja o programa inteiro
idade_texto = "25"
idade = int(idade_texto)
print(idade + 1)
preco_texto = "19.90"
preco = float(preco_texto)
print(preco * 2)
Agora vamos ler linha por linha
- O valor original
idade_textoéstr. int(idade_texto)cria um novo valor inteiro 25.- Agora
idade + 1é uma soma numérica. - O mesmo raciocínio vale para
floate o texto de preço.
Saída esperada
26
39.8
Exemplo 2 — o mesmo conceito em outra situação
texto = "False"
print(bool(texto))
print(bool(""))
A primeira saída é True, porque qualquer string não vazia é considerada verdadeira em contexto booleano. A segunda é False, pois a string está vazia. Isso mostra por que bool() não “entende” o significado da palavra.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Teste
int("10"),int("10.5")efloat("10.5"). Observe quais funcionam. - Converta o número 42 para texto e concatene com uma mensagem.
- Teste
bool("False")e explique o resultado com suas palavras. - Diferencie conversão de faixa válida: depois de converter uma nota, ainda verifique se está entre 0 e 10.
Mini desafio
Escreva um trecho que receba o texto "7.5", converta para float, some 1 ponto e mostre o resultado.
Solução comentada
nota_texto = "7.5"
nota = float(nota_texto)
nota_final = nota + 1
print("Nota final:", nota_final)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Esperar que
int("12.3")simplesmente descarte a parte decimal. A string não está no formato de inteiro esperado. - Usar
bool("False")para interpretar texto do usuário e obter um resultado inesperado. - Achar que conversão bem-sucedida significa dado válido para a regra do negócio.
Cheque se você realmente entendeu
Qual é o tipo retornado por int("25")?
Resposta: int.
Por que int("abc") falha?
Resposta: Porque o texto não representa um inteiro no formato que a função consegue interpretar.
Converter uma nota para float garante que ela esteja entre 0 e 10?
Resposta: Não. Essa faixa é uma validação adicional.
Resumo em linguagem simples
Nesta aula, o ponto central foi Conversão entre tipos. Tente explicar o modelo TEXTO RECEBIDO → CONVERSÃO → TIPO ADEQUADO → VALIDAÇÃO DE REGRA → USO sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, Operadores e precedência, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.