Módulo 4 - Variáveis e tipos de dados

Prática: um cadastro simples com os tipos certos

11 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Escolher o tipo certo para cada dado de um cadastro real.
  • Montar a ficha combinando concatenação, str() e o print com vírgula.
  • Desenhar uma moldura de terminal com a repetição de strings.
  • Modificar o programa por conta própria nos desafios extras.

A missão: cinco dados, três tipos

Todo sistema que você já usou tem um cadastro em algum lugar: a conta do streaming, a ficha da academia, o perfil da rede social. Nesta prática, você constrói o seu primeiro, em miniatura: um programa que guarda cinco informações de uma pessoa e as apresenta numa ficha organizada no terminal. Nada de input ainda, os dados ficam escritos no código; a versão que conversa com o usuário chega no módulo 5, reaproveitando exatamente o que você montar aqui.

O primeiro passo é a decisão de projeto que dá título ao módulo: qual tipo para cada dado? Não é pegadinha, é o raciocínio que você fará em todo programa da vida. Nome, cidade e profissão são textos, portanto str. Idade se conta em anos completos, sem fração: int. Altura se mede com casas decimais: float, e com ponto, como a aula do float martelou. A tabela fecha a decisão.

DadoExemploTipoPor quê
nome"Mariana Costa"strTexto entre aspas; aceita espaços e acentos
idade31intAnos completos, contagem sem fração
cidade"Curitiba"strTexto; nome próprio de lugar
profissao"enfermeira"strTexto livre; note o nome da variável sem acento
altura1.68floatMedida com fração; ponto decimal, nunca vírgula

O mapa da prática: cinco dados, três tipos, e cada escolha com motivo.

Um detalhe da tabela que passa fácil despercebido: a variável se chama profissao, sem acento, seguindo a regra da primeira aula de manter os nomes em ASCII simples, mas o VALOR pode ter acento à vontade, porque é texto: "enfermeira", "pedreiro", "programadora". Nome de variável é para o código; conteúdo é para as pessoas.

Montando a ficha, linha por linha

Com as variáveis decididas, o desafio vira apresentação: transformar cinco valores soltos numa ficha que se lê com prazer. A receita usa três técnicas do módulo. A moldura vem da repetição de strings: "=" * 30 desenha uma linha de trinta iguais, e duas delas abraçam o título. Cada linha de dado combina um rótulo fixo com a variável, e aqui você escolhe a arma: o print com vírgula, que converte sozinho, ou a concatenação com str(), que dá controle total sobre os espaços.

nome = "Mariana Costa"
idade = 31

print("=" * 30)
print("FICHA DE CADASTRO")
print("=" * 30)
print("Nome:", nome)
print("Idade: " + str(idade) + " anos")

# Saída:
# ==============================
# FICHA DE CADASTRO
# ==============================
# Nome: Mariana Costa
# Idade: 31 anos

As duas técnicas lado a lado: vírgula na linha do nome, concatenação com str() na linha da idade.

Repare na linha da idade: sem o str(), aquele + entre texto e int lançaria o TypeError que a aula passada dissecou. A conversão resolve, e a concatenação permite emendar o "anos" no final sem espaço sobrando. Já a linha do nome usa a vírgula do print, mais curta, que põe o espaço sozinha. Nenhuma das duas é a certa em absoluto; programador de verdade alterna conforme a necessidade, e esta prática existe para você sentir a diferença nos dedos.

Código final e desafios extras

Segue o programa completo, do jeito que ele deve rodar no Playground ou no seu computador. Digite, execute, confira a saída e só então compare com a sua versão. Diferenças de estilo são bem-vindas; o que precisa bater é o comportamento: cinco dados com os tipos certos e uma ficha legível.

# Cadastro simples - prática do módulo 4
nome = "Mariana Costa"
idade = 31
cidade = "Curitiba"
profissao = "enfermeira"
altura = 1.68

print("=" * 30)
print("     FICHA DE CADASTRO")
print("=" * 30)
print("Nome:      " + nome)
print("Idade:     " + str(idade) + " anos")
print("Cidade:    " + cidade)
print("Profissão: " + profissao)
print("Altura:    " + str(altura) + " m")
print("=" * 30)
print("Dados conferidos?", len(nome) > 0)

# Saída:
# ==============================
#      FICHA DE CADASTRO
# ==============================
# Nome:      Mariana Costa
# Idade:     31 anos
# Cidade:    Curitiba
# Profissão: enfermeira
# Altura:    1.68 m
# ==============================
# Dados conferidos? True

O cadastro completo: str, int e float trabalhando juntos, moldura com repetição e até um bool de bônus na última linha.

A última linha merece um comentário: len(nome) > 0 pergunta se o nome tem pelo menos um caractere e imprime o veredito booleano, True. É uma verificação ingênua por enquanto, mas é a semente das validações de verdade: no módulo 7, um if vai usar exatamente esse tipo de pergunta para recusar cadastros vazios. Os espaços extras depois dos rótulos, como em "Nome: ", são um truque manual de alinhamento; o jeito elegante de alinhar chega com as f-strings do módulo 12.

  1. Desafio 1: acrescente dois campos ao cadastro, um int (número de filhos ou ano de nascimento) e um float (peso em kg), mantendo a ficha alinhada.
  2. Desafio 2: crie uma variável maior_de_idade guardando o resultado de idade >= 18 e mostre na ficha como a última linha.
  3. Desafio 3: calcule o ano de nascimento aproximado com 2026 - idade e exiba na ficha, concatenando com str().
  4. Desafio 4: troque todos os prints com vírgula por concatenação, e depois faça o inverso; decida qual estilo você prefere em cada linha.
  5. Desafio 5: provoque de propósito um TypeError tirando um str() e um dado errado trocando o ponto da altura por vírgula; conserte os dois lendo as pistas.

Fechando o módulo: você agora guarda valores em variáveis com nomes decentes, distingue str, int, float e bool, descobre tipos com type(), converte com int(), float() e str(), e montou um programa que apresenta dados de verdade. O módulo 5 destranca a porta que falta: o input(), que deixa o USUÁRIO preencher esse cadastro em vez de você. E, spoiler coerente com esta unidade: tudo o que ele digitar vai chegar como string.

Teste rápido

No cadastro da prática, por que a altura é 1.68 e a idade é 31, sem ponto?

Perguntas frequentes

Posso usar os meus dados de verdade na prática?
No Playground, pode ficar tranquilo: o código roda isolado no seu navegador e não envia nada para servidor nenhum. Ainda assim, é um bom hábito de programador usar dados fictícios em exercícios, porque código de estudo acaba compartilhado em fórum, print de tela e portfólio.
Por que a variável se chama profissao sem acento se o valor pode ter acento?
São mundos diferentes: o nome da variável pertence ao código, e a convenção do curso é mantê-lo em ASCII simples, sem acento, para evitar problemas de teclado e compartilhamento. O valor é texto para pessoas, e aí o português entra completo: "enfermeira", "eletricitário", "padeiro".
Minha ficha desalinhou quando mudei os dados. É erro?
Não é erro, é limitação do alinhamento manual: os espaços fixos depois dos rótulos só alinham enquanto os dados têm tamanhos parecidos. Nomes maiores empurram a coluna. O alinhamento automático, que se adapta ao conteúdo, vem com as f-strings do módulo 12, e a sua ficha vai ficar impecável.
Qual a diferença prática entre print com vírgula e concatenação com + ?
A vírgula é mais cômoda: aceita qualquer tipo sem conversão e insere um espaço entre os valores. A concatenação exige str() nos números, mas devolve controle total, sem espaço automático, e permite guardar a mensagem pronta numa variável. Na ficha, as duas convivem bem; com o tempo você escolhe por reflexo.
Fiz o desafio 5 e o erro da vírgula não apareceu. Por quê?
Porque a vírgula no lugar do ponto não gera mensagem de erro imediata: altura = 1,68 cria silenciosamente a tupla (1, 68), e o programa segue. O sintoma aparece depois, na saída estranha entre parênteses ou num TypeError quando você tenta concatenar. É exatamente por ser silencioso que esse erro merece treino.
O que estudar se esta prática pareceu fácil demais?
Bom sinal: o módulo cumpriu o papel. Estique os desafios: monte fichas para três pessoas diferentes, calcule a média das alturas com as variáveis, ou tente exibir a altura com vírgula brasileira usando str() e concatenação criativa. E siga para o módulo 5, onde o input() transforma este cadastro num programa interativo.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.