43 ExercĂ­cios de Python para Iniciantes – Guia Completo

Aprenda do zero com exercícios de Python progressivos que simulam situações reais do mercado de trabalho.

Resposta rápida: Para treinar Python do zero, resolva os exercícios na ordem em que a linguagem se aprende: variáveis, strings, input, listas, condicionais, dicionários, laço for, funções e tuplas. Crie um arquivo .py por lista, escreva a sua solução antes de olhar a resposta e rode o código no VS Code. São 43 exercícios, todos com contexto de empresa.

Introdução – ExercĂ­cios de Python

Fala, impressionador(a)!

Se você está começando a estudar Python, provavelmente já percebeu que assistir tutoriais e ler documentação não é suficiente. A verdadeira aprendizagem acontece quando você coloca a mão no código e resolve problemas reais.

Muitos iniciantes enfrentam o mesmo dilema: sabem a teoria, mas não conseguem aplicar o conhecimento em projetos práticos. Essa lacuna entre conhecimento teórico e habilidade prática é exatamente o que os exercícios resolvem.

Neste artigo, você vai descobrir como treinar Python de forma progressiva, começando do zero absoluto e avançando até conceitos intermediários. Vamos juntos resolver exercícios que simulam situações reais do mercado de trabalho.

EntĂŁo, vem comigo!

Para fazer o download dos exercĂ­cios e soluções, preencha com o seu e-mail:

NĂŁo vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos Ă© uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dĂşvida, nos contate.

Preparando o Ambiente

Antes de começar, você precisa ter Python e VS Code instalados no seu computador. Se ainda não tem, você pode acessar o vídeo Como Configurar VS Code para Python, com um passo a passo explicando tudo que você precisa fazer.

Com o Python instalado precisaremos criar uma pasta chamada "exercicios" na área de trabalho, por exemplo, para armazenar todos os arquivos dos exercícios.

Em seguida vamos abrir o VS Code, clicar no canto superior esquerdo em File e selecionar a opção Open Folder para abrir a pasta que acabamos de criar.

Menu “File” do Visual Studio Code aberto, com a opção “Open Folder…” destacada em roxo, indicando o caminho para abrir uma pasta no editor

Com ela aberta, criaremos a seguinte estrutura de arquivos:

Codigo
exercicios
|
|_lista_01.py
|_lista_02.py
|_lista_03.py
|_lista_04.py
|_lista_05.py
|_lista_06.py
|_lista_07.py
|_lista_08.py
|_lista_09.py

Em cada arquivo, vamos resolver os exercícios de uma lista. Você encontrará primeiro o enunciado de cada exercício e, logo em seguida, a sua resolução. Contudo, é muito importante que você tente resolver os exercícios por conta própria antes de consultar a resposta, pois essa prática é essencial para consolidar o aprendizado e desenvolver o raciocínio.

Lista 1: Exercícios de variáveis

As variáveis são os blocos fundamentais de qualquer programa. Elas armazenam informações que você vai usar e manipular ao longo do código.

Pense em uma variável como uma caixa etiquetada onde você guarda informações. O nome da variável é a etiqueta, e o conteúdo é o valor que você armazenou.

Exercício 1: Cálculo de Bônus de Vendas (RH/Vendas): uma empresa decidiu dar um bônus de 10% sobre o faturamento total para a equipe de vendas. Calcule o valor do bônus e o faturamento final da empresa após subtrair esse bônus.

  • Faturamento inicial: 50.000
  • Percentual de bĂ´nus: 0.10

Resposta:

Codigo
# Faturamento bruto da empresa
fat = 50000

# Percentual do bĂ´nus (10%)
perc_bonus = 0.1

# Cálculo do valor total do bônus
bonus_total = fat * perc_bonus

# Faturamento lĂ­quido apĂłs descontar o bĂ´nus
fat_liquido = fat - bonus_total

# Exibe o faturamento lĂ­quido
print("Fat Liquido", fat_liquido)

# Exibe o valor total do bĂ´nus
print("Bonus Total", bonus_total)

Exercício 2: Controle de Estoque de E-commerce (Logística): um e-commerce começou o dia com 250 unidades de um smartphone no estoque. Durante o dia, foram vendidos 78 unidades e chegaram mais 100 unidades de um fornecedor. Atualize a variável de estoque e exiba o saldo final.

Resposta:

Codigo
# Quantidade inicial em estoque
estoque = 250

# Quantidade de itens vendidos
vendas = 78

# Quantidade de itens repostos no estoque
reposicao = 100

# Atualiza o estoque: subtrai vendas e soma reposição
estoque = estoque - vendas + reposicao

# Exibe o estoque final
print("Estoque Final", estoque)

Exercício 3: Divisão de Cargas (Logística/Transporte): uma transportadora precisa levar 1.250 caixas em caminhões pequenos. Cada caminhão suporta exatamente 12 caixas. Quantos caminhões sairão totalmente cheios? (Use //) e quantas caixas sobrarão para serem enviadas em uma última viagem menor? (Use %).

Resposta:

Codigo
# Total de caixas disponĂ­veis
caixas = 1250

# Quantidade de caixas que cabem em um caminhĂŁo
capacidade_caminhao = 12

# Calcula quantos caminhões podem ser carregados completamente
# O operador // faz divisĂŁo inteira (descarta o resto)
caminhoes_completos = caixas // capacidade_caminhao

# Exibe o número de caminhões completos
print("Caminhoes Completos", caminhoes_completos)

# Calcula quantas caixas sobram após encher os caminhões
# O operador % retorna o resto da divisĂŁo
caixas_restantes = caixas % capacidade_caminhao

# Exibe as caixas restantes
print("Caixas Restantes", caixas_restantes)

Exercício 4: Análise de Margem de Lucro (Financeiro): uma consultoria faturou R$ 15.000,00 em um projeto. Os custos fixos foram de R$ 5.000,00 e o imposto sobre o faturamento é de 15%. Calcule o imposto, o lucro líquido e a margem de lucro (Lucro / Faturamento). No final, crie uma variável booleana chamada meta_atingida que verifica se a margem de lucro é superior a 0.30 (30%).

Resposta:

Codigo
# Faturamento total da empresa
fat = 15000

# Custos totais da empresa
custos = 5000

# Percentual de imposto (15%)
perc_imposto = 0.15

# Calcula o valor do imposto sobre o faturamento
imposto = fat * perc_imposto

# Calcula o lucro lĂ­quido (faturamento - custos - imposto)
lucro = fat - custos - imposto

# Calcula a margem de lucro
# Margem = lucro dividido pelo faturamento
margem = lucro / fat

# Exibe os valores calculados
print("Faturamento", fat)
print("Lucro", lucro)
print("Margem", margem)

# Verifica se a margem de lucro Ă© maior que 30%
# Retorna True se for maior, ou False se nĂŁo for
meta_atingida = margem > 0.3

# Exibe se a meta foi atingida
print("Meta Atingida?", meta_atingida)

Exercício 5: Conversão de Tempo de Contrato (Gestão de Projetos): um contrato de manutenção de software tem a duração de 40 meses. O cliente quer ver esse tempo no formato: "X anos e Y meses". Utilize os operadores de divisão inteira e resto da divisão para converter os 40 meses.

Resposta:

Codigo
# Duração do contrato em meses
duracao = 40

# Calcula quantos anos completos existem
anos = duracao // 12

# Calcula quantos meses sobram apĂłs os anos completos
meses_sobram = duracao % 12

# Exibe a duração do contrato em anos e meses
print("Duração do contrato é de", anos, "anos e", meses_sobram, "meses")

Lista 2: ExercĂ­cios de strings

Manipular textos é uma das tarefas mais comuns na programação. Desde padronizar nomes em um banco de dados até gerar mensagens personalizadas, você precisa dominar strings.

Exercício 1: Relatório de Margem de Lucro (Setor Financeiro): uma empresa de varejo precisa de um resumo rápido sobre a performance de um produto. Dado o faturamento de R$ 45.000,00 e o custo de R$ 23.500,00, crie um programa que calcule o lucro e a margem de lucro (lucro dividido pelo faturamento). Exiba uma mensagem formatada onde o lucro use o separador de milhar e duas casas decimais, e a margem seja exibida como uma porcentagem inteira.

Resposta:

Codigo
# Faturamento total da empresa
fat = 45000

# Custo total da empresa
custo = 23500

# Cálculo do lucro (faturamento - custo)
lucro = fat - custo

# Cálculo da margem de lucro (lucro dividido pelo faturamento)
margem = lucro / fat

# Exibe o lucro formatado em reais e a margem em porcentagem
# :,.2f : formata nĂşmero com separador de milhar e 2 casas decimais
# :.0% : converte para porcentagem sem casas decimais
print(f"Lucro: R${lucro:,.2f}, Margem: {margem:.0%}")

Exercício 2: Padronização de Dados de CRM (Setor de Vendas): um vendedor cadastrou um cliente com os dados desorganizados no sistema: nome = " mArCoS aNtOnIo rOcHa " e email = " MARCOS.ROCHA@GMAIL.COM ". Para evitar duplicidade e erros de envio, você deve:

1. Remover os espaços extras no início e fim das duas variáveis.

2. Deixar o nome apenas com as primeiras letras de cada palavra em maiĂşsculo (formato de nome prĂłprio).

3. Deixar o e-mail todo em letras minĂşsculas. Exiba os resultados finais no console.

Respostas:

Codigo
# Nome com espaços extras e letras fora do padrão
nome = " mArCoS aNtOnIo rOcHa "

# Email com letras maiúsculas e espaços extras
email = " MARCOS.ROCHA@GMAIL.COM "

# Remove espaços no início e no fim do nome
# Converte o texto para formato de nome prĂłprio
nome = nome.strip().title()

# Exibe o nome formatado corretamente
print(nome)

# Remove espaços no início e no fim do email
email = email.strip()

# Converte todo o email para letras minĂşsculas
email = email.lower()

# Exibe o email formatado corretamente
print(email)

Exercício 3: Migração de Servidor de E-mail (Setor de TI): sua empresa mudou de nome e todos os funcionários que usavam o domínio @empresa.com.br agora devem usar o domínio @grupocorp.com. O e-mail do funcionário é andre_silva@empresa.com.br. Crie um código que substitua automaticamente o domínio antigo pelo novo e exiba o novo endereço de e-mail.

Respostas:

Codigo
# Email original do usuário
email = "andre_silva@empresa.com.br"

# Novo domínio que será usado
novo_dominio = "@grupocorp.com"

# Substitui o domĂ­nio antigo pelo novo domĂ­nio
email = email.replace("@empresa.com.br", "@grupocorp.com")

# Exibe o email atualizado
print(email)

Exercício 4: Extração de Username para Log (Setor de Segurança): para criar um log de acessos, o sistema precisa extrair apenas a parte do nome do usuário de um e-mail corporativo (tudo o que vem antes do @). Dado o e-mail beatriz.oliveira@grupocorp.com, use a função .find() e o fatiamento de texto para extrair e exibir apenas o nome beatriz.oliveira.

Respostas:

Codigo
# Email completo do usuário
email = "beatriz.oliveira@grupocorp.com"

# Encontra a posição do caractere "@"
posicao_a = email.find("@")

# Extrai apenas o nome de usuário (parte antes do "@")
username = email[:posicao_a]

# Exibe o nome de usuário
print(username)

Exercício 5: Personalização de E-mail de Marketing (Setor de Marketing): o marketing quer enviar um e-mail de boas-vindas. O cliente forneceu o nome completo: lucas ferreira souza. Você deve extrair apenas o primeiro nome para usar na saudação (ex: "Olá, Lucas!"). O código deve:

1. Encontrar a posição do primeiro espaço.

2. Fatiar o texto para pegar apenas o primeiro nome.

3. Formatar o nome com a primeira letra maiĂşscula.

4. Exibir a mensagem: "Olá, [Primeiro Nome], seja bem-vindo ao nosso clube!"

Respostas:

Codigo
# Mensagem padrĂŁo com um marcador para o primeiro nome
mensagem = "Olá, [Primeiro Nome], seja bem-vindo ao nosso clube!"

# Nome completo do usuário em letras minúsculas
nome = "lucas ferreira souza"

# Encontra a posição do primeiro espaço no nome
posicao_espaco = nome.find(" ")

# Extrai o primeiro nome e coloca a primeira letra em maiĂşscula
pri_nome = nome[:posicao_espaco].capitalize()

# Substitui o marcador pelo primeiro nome do usuário
mensagem = mensagem.replace("[Primeiro Nome]", pri_nome)

# Exibe a mensagem personalizada
print(mensagem)

Lista 3: ExercĂ­cios de inputs

Programas que interagem com usuários precisam receber e validar informações. Os exercícios de input ensinam como captar dados e tratá-los adequadamente.

Exercício 1: Calculadora de Imposto sobre Vendas (Setor Fiscal): uma empresa de serviços precisa calcular o imposto de 15% sobre o valor bruto de uma nota fiscal. Como o valor muitas vezes vem copiado de planilhas com "R$" e vírgula, seu programa deve:

1. Pedir para o usuário digitar o valor bruto (Ex: R$ 5.000,00).

2. Limpar o texto removendo o "R$" e trocando a vĂ­rgula por ponto.

3. Converter para nĂşmero decimal (float).

4. Calcular o valor do imposto (15% do valor bruto).

5. Exibir uma mensagem formatada com f-string mostrando o valor do imposto com duas casas decimais.

Respostas:

Codigo
# Solicita ao usuário o faturamento (pode vir no formato "R$ 45.000,00")
fat = input("Digite o faturamento:")

# Remove o sĂ­mbolo de moeda e os separadores de milhar
# Substitui a vĂ­rgula por ponto para permitir a conversĂŁo para nĂşmero
fat = fat.replace("R$", "").replace(".", "").replace(",", ".")

# Converte o valor tratado para nĂşmero decimal (float)
fat_numerico = float(fat)

# Percentual de imposto (15%)
perc_imposto = 0.15

# Calcula o valor do imposto com base no faturamento
imposto = fat_numerico * perc_imposto

# Exibe o imposto pago formatado em reais
print(f"Imposto pago: R${imposto:,.2f}")

Exercício 2: Sistema de Cadastro de Colaborador (Setor de RH): ao cadastrar um novo funcionário, o RH precisa extrair o primeiro nome para criar um crachá e padronizar o e-mail. Crie um programa que:

1. Peça o nome completo do colaborador.

2. Peça o e-mail pessoal do colaborador.

3. Extraia o primeiro nome (deixe-o com a primeira letra maiĂşscula).

4. Padronize o e-mail (remova espaços extras e deixe tudo em letras minúsculas).

5. Exiba a mensagem: "Cadastro concluĂ­do: [Primeiro Nome]. E-mail de acesso: [E-mail padronizado]".

Respostas:

Codigo
# Mensagem padrĂŁo com campos que serĂŁo substituĂ­dos
mensagem = "Cadastro concluĂ­do: [Primeiro Nome]. E-mail de acesso: [E-mail padronizado]"

# Solicita o nome completo do colaborador
nome = input("Digite o nome completo do colaborador:")

# Solicita o email do colaborador
email = input("Digite o email do colaborador:")

# Remove espaços extras do início e do fim do nome
nome = nome.strip()

# Remove espaços extras do email e converte para letras minúsculas
email = email.strip().lower()

# Encontra a posição do primeiro espaço no nome
posicao_espaco = nome.find(" ")

# Extrai o primeiro nome e capitaliza a primeira letra
pri_nome = nome[:posicao_espaco].capitalize()

# Substitui os campos da mensagem pelo primeiro nome e email formatado
mensagem = mensagem.replace("[Primeiro Nome]", pri_nome)\
                   .replace("[E-mail padronizado]", email)

# Exibe a mensagem final personalizada
print(mensagem)

Exercício 3: Análise de Metas de Vendas (Setor Comercial): um gerente quer comparar o desempenho de duas filiais. O programa deve:

1. Pedir o faturamento da Loja A e o faturamento da Loja B (o usuário pode digitar números decimais).

2. Calcular o faturamento total das duas lojas.

3. Calcular a média de faturamento entre elas.

4. Exibir uma única mensagem formatada informando o total e a média, utilizando o separador de milhar e duas casas decimais.

Respostas:

Codigo
# Solicita o faturamento da Loja A
fat_lojaA = input("Faturamento da Loja A:")

# Solicita o faturamento da Loja B
fat_lojaB = input("Faturamento da Loja B:")

# Trata o faturamento da Loja A removendo sĂ­mbolos e formatando o nĂşmero
fat_lojaA = fat_lojaA.replace("R$", "").replace(".", "").replace(",", ".")

# Converte o faturamento da Loja A para nĂşmero decimal
fat_lojaA = float(fat_lojaA)

# Trata o faturamento da Loja B removendo sĂ­mbolos e formatando o nĂşmero
fat_lojaB = fat_lojaB.replace("R$", "").replace(".", "").replace(",", ".")

# Converte o faturamento da Loja B para nĂşmero decimal
fat_lojaB = float(fat_lojaB)

# Calcula o faturamento total das duas lojas
total_fat = fat_lojaA + fat_lojaB

# Calcula a média de faturamento entre as duas lojas
media_fat = total_fat / 2

# Exibe o faturamento total e a média formatados em reais
print(f"Faturamento Total: R${total_fat:,.2f}, Média de Faturamento: R${media_fat:,.2f}")

Lista 4: ExercĂ­cios com listas

Listas são estruturas fundamentais para armazenar múltiplos valores relacionados. Você vai usá-las constantemente em projetos reais.

Exercício 1: Dashboard de Vendas (Análise de Dados): você recebeu uma lista com as vendas diárias de uma equipe:

vendas = [1500, 2000, 800, 3500, 1200].

Crie um programa que exiba um pequeno relatĂłrio contendo:

1. O total de vendas na semana.

2. A média de vendas diária.

3. O valor da melhor venda e da pior venda do perĂ­odo.

Respostas:

Codigo
# Lista com o valor das vendas diárias
vendas = [1500, 2000, 800, 3500, 1200]

# Soma todos os valores da lista de vendas
total_vendas = sum(vendas)

# Conta quantos dias de venda existem na lista
qtde_dias = len(vendas)

# Calcula a média de vendas por dia
media_vendas = total_vendas / qtde_dias

# Obtém o maior valor de venda da lista
maior_venda = max(vendas)

# Obtém o menor valor de venda da lista
menor_venda = min(vendas)

# Exibe os indicadores calculados
print(
    f"Total: {total_vendas}, "
    f"Média de Vendas: {media_vendas}, "
    f"Maior Venda: {maior_venda}, "
    f"Menor Venda: {menor_venda}"
)

Exercício 2: Gestão de Estoque (Edição e Verificação): uma loja de eletrônicos possui os seguintes produtos:

estoque = ["monitor", "teclado", "mouse", "headset"].

O gerente pediu para:

1. Adicionar o item "webcam" ao final da lista.

2. O "teclado" teve seu nome atualizado para "teclado mecanico". Faça essa alteração na lista.

3. Verificar se "impressora" está no estoque. O programa deve exibir True ou False.

4. Remover o "mouse" da lista, pois saiu de linha.

Respostas:

Codigo
# Lista inicial de produtos em estoque
estoque = ["monitor", "teclado", "mouse", "headset"]

# Adiciona um novo item ao final da lista
estoque.append("webcam")

# Encontra a posição do item "teclado" na lista
posicao_teclado = estoque.index("teclado")

# Substitui o item "teclado" por "teclado mecânico"
estoque[posicao_teclado] = "teclado mecânico"

# Verifica se o item "impressora" existe no estoque
impressora_no_estoque = "impressora" in estoque

# Exibe se a impressora está ou não no estoque
print("Impressora no estoque?", impressora_no_estoque)

# Remove o item "mouse" da lista
estoque.remove("mouse")

# Exibe a lista de estoque atualizada
print(estoque)

Exercício 3: Organização de Preços (Ordenação e Slicing): uma importadora listou os preços de frete em dólar:

fretes = [50, 80, 20, 150, 40].

Para apresentar em uma reuniĂŁo, vocĂŞ deve:

1. Ordenar a lista do maior para o menor preço.

2. Pegar os 2 fretes mais caros (usando fatiamento/slicing) e armazenar em uma nova lista chamada top_fretes.

3. Exibir a lista original ordenada e a lista dos top_fretes.

Respostas:

Codigo
# Lista com os valores dos fretes
fretes = [50, 80, 20, 150, 40]

# Ordena a lista de fretes em ordem decrescente
fretes.sort(reverse=True)

# Exibe os fretes ordenados
print(fretes)

# Seleciona os dois maiores valores de frete
top_fretes = fretes[:2]

# Exibe os dois maiores fretes
print(top_fretes)

ExercĂ­cio 4: Sistema de LogĂ­stica (Busca e ExtensĂŁo): a empresa "LogTrack" tem uma rota de entregas:

rota = ["Sao Paulo", "Campinas", "Jundiai", "Sorocaba"].

Novas cidades foram adicionadas por uma empresa parceira:

novas_cidades = ["Itu", "Valinhos"].

Seu script deve:

1. Unir as duas listas em uma sĂł (usando extend).

2. Identificar em qual posição (índice) está a cidade de "Sorocaba".

3. Exibir a lista completa e a posição encontrada.

4. Exibir uma mensagem final: “Sorocaba é a Xª cidade da rota”.

Respostas:

Codigo
# Lista inicial com as cidades da rota
rota = ["SĂŁo Paulo", "Campinas", "JundiaĂ­", "Sorocaba"]

# Lista com novas cidades a serem adicionadas Ă  rota
novas_cidades = ["Itu", "Valinhos"]

# Adiciona todas as novas cidades ao final da rota
rota.extend(novas_cidades)

# Exibe a rota completa
print(rota)

# Encontra a posição da cidade "Sorocaba" na rota
# Soma 1 porque listas começam no índice 0
posicao_sorocaba = rota.index("Sorocaba") + 1

# Exibe a posição da cidade na rota
print(f"Sorocaba Ă© a {posicao_sorocaba}ÂŞ cidade da rota")

Exercício 5: Atualização de Preços Interativa (Input + Lista): você tem uma lista de preços de produtos:

precos = [100.0, 250.0, 500.0]

Além disso, temos uma lista com os nomes:

vinhos = ["Branco", "Tinto", "Champagne"]. Crie um programa interativo que:

1. Peça para o usuário digitar qual o nome do produto.

2. Peça para o usuário digitar o novo preço.

3. Atualize o preço na lista e exiba as listas completas com os nomes e os preços.

Respostas:

Codigo
# Lista de preços dos vinhos
precos = [100.0, 250.0, 500.0]

# Lista com os tipos de vinhos
vinhos = ["Branco", "Tinto", "Champagne"]

# Solicita ao usuário qual vinho terá o preço alterado
vinho_escolhido = input("Digite o vinho a ser alterado:")

# Solicita o novo preço do vinho
novo_preco = input("Novo Preço:")

# Remove símbolo de moeda e ajusta separadores numéricos
novo_preco = novo_preco.replace("R$", "").replace(".", "").replace(",", ".")

# Converte o preço para número decimal
novo_preco = float(novo_preco)

# Encontra a posição do vinho escolhido na lista de vinhos
posicao_vinho = vinhos.index(vinho_escolhido)

# Atualiza o preço do vinho na mesma posição da lista de preços
precos[posicao_vinho] = novo_preco

# Exibe as listas atualizadas
print(vinhos)
print(precos)
ĂŤcone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

Lista 5: ExercĂ­cios com if

Estruturas condicionais permitem que seu programa tome decisões baseadas em diferentes situações. São essenciais para criar lógica de negócio.

Exercício 1: Validação de Investimento (Setor Financeiro): uma corretora de valores quer automatizar a recomendação básica de perfil. Crie um programa que peça ao usuário o valor que ele deseja investir.

1. Se o valor for menor que R$ 1.000,00, exiba: "Perfil iniciante: Sugerimos Tesouro Direto".

2. Se o valor for entre R$ 1.000,00 e R$ 5.000,00 (inclusive), exiba: "Perfil moderado: Sugerimos Fundos Imobiliários".

3. Se o valor for acima de R$ 5.000,00, exiba: "Perfil arrojado: Sugerimos Ações". Lembre-se de tratar o input caso o usuário digite "R$" ou use vírgula.

Respostas:

Codigo
# Solicita ao usuário o valor que será investido
# O valor pode ser digitado com sĂ­mbolo de moeda e separadores
valor = input("Digite o valor que vocĂŞ vai querer investir:")

# Remove o sĂ­mbolo "R$" e os separadores de milhar
# Troca a vírgula por ponto para permitir conversão numérica
valor = valor.replace("R$", "").replace(".", "").replace(",", ".")

# Converte o valor tratado para nĂşmero decimal
valor = float(valor)

# Verifica o perfil do investidor com base no valor informado
if valor < 1000:
    # Para valores menores que 1000
    print("Perfil iniciante: Sugerimos Tesouro Direto")
elif valor <= 5000:
    # Para valores entre 1000 e 5000
    print("Perfil moderado: Sugerimos Fundos Imobiliários")
else:
    # Para valores acima de 5000
    print("Perfil arrojado: Sugerimos Ações")

Exercício 2: Controle de Acesso ao Sistema (Setor de Segurança): você tem uma lista de e-mails de administradores:

admins =["ana@empresa.com","guilherme@empresa.com", "felipe@empresa.com"].

Crie um programa que peça o e-mail do usuário. O programa deve:

1. Padronizar o e-mail (letras minúsculas e sem espaços).

2. Verificar se o e-mail está na lista de admins.

3. Se estiver, exibir: "Acesso liberado! Bem-vindo ao painel de controle".

4. Caso contrário, exibir: "Acesso negado. Você não tem permissões de administrador".

Respostas:

Codigo
# Lista de e-mails que possuem permissĂŁo de administrador
admins = ["ana@empresa.com", "guilherme@empresa.com", "felipe@empresa.com"]

# Solicita o e-mail do usuário
email = input("Digite seu e-mail:")

# Remove espaços extras e converte para letras minúsculas
email = email.strip().lower()

# Verifica se o e-mail informado está na lista de administradores
if email in admins:
    print("Acesso liberado! Bem-vindo ao painel de controle")
else:
    print("Acesso negado. Você não tem permissões de administrador")

Exercício 3: Cálculo de Desconto Progressivo (Setor de Vendas): um e-commerce aplica descontos automáticos no carrinho. Crie um programa que receba o valor total da compra e aplique a seguinte lógica:

  • Compras a partir de R$ 500,00: 15% de desconto.
  • Compras a partir de R$ 200,00 (e menos de 500): 10% de desconto.
  • Compras abaixo de R$ 200,00: Sem desconto. O programa deve exibir o valor do desconto e o valor final a pagar, formatados em R$.

Respostas:

Codigo
# Valor total dos produtos no carrinho
valor_carrinho = 400

# Define o percentual de desconto com base no valor do carrinho
if valor_carrinho < 200:
    # Compras abaixo de 200 nĂŁo recebem desconto
    perc_desconto = 0
elif valor_carrinho < 500:
    # Compras entre 200 e 499 recebem 10% de desconto
    perc_desconto = 0.1
else:
    # Compras acima de 500 recebem 15% de desconto
    perc_desconto = 0.15

# Calcula o valor do desconto
desconto = valor_carrinho * perc_desconto

# Calcula o valor final apĂłs aplicar o desconto
valor_final = valor_carrinho - desconto

# Exibe o desconto e o valor final formatados em reais
print(f"Desconto: R${desconto:,.2f}. Valor Total: R${valor_final:,.2f}")

Exercício 4: Análise de Metas Combinadas (Setor Comercial): uma empresa paga bônus se a meta individual do vendedor e a meta da loja forem batidas.

1. Peça as vendas do vendedor e a meta individual dele.

2. Peça as vendas totais da loja e a meta da loja.

3. Se o vendedor bater a meta dele E a loja bater a meta total, o bĂ´nus Ă© de 20% sobre as vendas do vendedor.

4. Caso contrário, o bônus é zero. Exiba a mensagem: "Seu bônus este mês é de: R$[valor]".

Respostas:

Codigo
# Meta individual do vendedor
meta = 1000

# Total de vendas realizadas pelo vendedor
vendas_vendedor = 1000

# Meta total da loja
meta_loja = 5000

# Total de vendas realizadas pela loja
vendas_loja = 4000

# Verifica se a meta da loja E a meta individual foram atingidas
if vendas_loja >= meta_loja and vendas_vendedor >= meta:
    # BĂ´nus de 20% sobre as vendas do vendedor
    bonus = 0.2 * vendas_vendedor
else:
    # Caso alguma das metas não seja atingida, não há bônus
    bonus = 0

# Exibe o valor do bĂ´nus
print(f"Seu bĂ´nus este mĂŞs Ă© de: R${bonus:.2f}")

Exercício 5: Sistema de Triagem de E-mails (Setor de Customer Experience): crie um sistema que ajude a filtrar para qual departamento uma reclamação deve ir. O usuário deve digitar o assunto do e-mail.

  • Se no assunto aparecer a palavra "pagamento" ou "boleto", exiba: "Encaminhado para o Financeiro".
  • Se no assunto aparecer a palavra "entrega" ou "atraso", exiba: "Encaminhado para a LogĂ­stica".
  • Caso nĂŁo seja nenhum desses, exiba: "Encaminhado para o Suporte Geral". Dica: Use o operador in para verificar se a palavra está dentro do texto.

Respostas:

Codigo
# Assunto informado no chamado ou e-mail
assunto = "Problemas com acesso"

# Converte o assunto para letras minúsculas para facilitar a comparação
assunto = assunto.lower()

# Verifica palavras-chave no assunto para direcionar o chamado
if "pagamento" in assunto or "boleto" in assunto:
    print("Encaminhado para o Financeiro")
elif "entrega" in assunto or "atraso" in assunto:
    print("Encaminhado para a LogĂ­stica")
else:
    print("Encaminhado para o Suporte Geral")

Lista 6: Exercícios com dicionários

Dicionários são estruturas que associam chaves a valores, perfeitas para organizar informações relacionadas.

Exercício 1: Atualização de Cadastro de Clientes (Setor de CRM): você tem um dicionário com o faturamento acumulado de alguns clientes:

clientes = {"Lira": 5000, "Alon": 3000, "Julia": 4500}.

O cliente "Alon" fez uma nova compra de R$ 1.500,00. Crie um cĂłdigo que:

1. Atualize o valor do cliente "Alon" somando o novo valor ao faturamento antigo.

2. Adicione um novo cliente chamado "Marcos" com um faturamento inicial de R$ 2.000,00.

3. Exiba o dicionário atualizado.

Respostas:

Codigo
# Dicionário com os clientes e o valor total de compras de cada um
clientes = {"Lira": 5000, "Alon": 3000, "Julia": 4500}

# Valor de uma nova compra realizada pelo cliente Alon
nova_compra = 1500

# Atualiza o valor total de compras do cliente Alon
clientes["Alon"] = clientes["Alon"] + nova_compra

# Adiciona um novo cliente ao dicionário com seu valor de compras
clientes["Marcos"] = 2000

# Exibe o dicionário atualizado de clientes
print(clientes)

ExercĂ­cio 2: Consulta de Estoque Interativa (Setor de LogĂ­stica): a empresa possui o seguinte estoque:

estoque = {"teclado": 50, "mouse": 120, "monitor": 30}.

Crie um programa que peça para o usuário digitar o nome de um produto.

1. Se o produto existir no estoque, exiba a quantidade disponĂ­vel.

2. Se o produto não existir, exiba a mensagem: "Produto não encontrado no sistema". Dica: Lembre-se de tratar o input para evitar erros de letras maiúsculas ou espaços.

Respostas:

Codigo
# Dicionário com os produtos em estoque e suas quantidades
estoque = {"teclado": 50, "mouse": 120, "monitor": 30}

# Solicita o nome do produto ao usuário
produto = input("Digite o nome do produto:")

# Remove espaços extras e converte o texto para letras minúsculas
produto = produto.strip().lower()

# Verifica se o produto informado existe no dicionário de estoque
if produto in estoque:
    # Se existir, exibe a quantidade disponĂ­vel
    print(f"{produto} encontrado: {estoque[produto]} unidades no estoque")
else:
    # Caso nĂŁo exista, informa que o produto nĂŁo foi encontrado
    print(f"{produto} nĂŁo encontrado")

Exercício 3: Análise de Faturamento por Região (Setor Financeiro): dada a lista de faturamento por região:

vendas_regiao = {"Norte": 15000, "Sul": 22000, "Leste": 18000, "Oeste": 25000}.

Seu programa deve:

  1. Extrair todos os valores (faturamentos) para uma lista.
  2. Calcular e exibir o faturamento total da empresa (soma de todas as regiões).
  3. Calcular e exibir o faturamento médio das regiões.

Respostas:

Codigo
# Dicionário com o faturamento de vendas por região
vendas_regiao = {"Norte": 15000, "Sul": 22000, "Leste": 18000, "Oeste": 25000}

# Converte os valores do dicionário (vendas) em uma lista
lista_vendas = list(vendas_regiao.values())

# Calcula o total de vendas somando todos os valores da lista
total_vendas = sum(lista_vendas)

# Conta quantas regiões existem
qtde_vendas = len(lista_vendas)

# Calcula a média de vendas por região
media_vendas = total_vendas / qtde_vendas

# Exibe o total e a média de vendas
print("Total Vendas", total_vendas)
print("Media de Vendas", media_vendas)

Exercício 4: Sistema de RH – Média de Desempenho (Setor de RH): o RH armazena as últimas 3 notas de desempenho de cada funcionário em um dicionário:

desempenho = {"Lira": [8, 9, 7], "Paula": [10, 9, 10], "Tiago": [6, 7, 8]}.

O gestor quer saber a média da funcionária "Paula". Crie um código que:

  1. Acesse a lista de notas da "Paula".
  2. Calcule a média das notas (soma das notas dividida pela quantidade de notas).
  3. Exiba o resultado: "A média de Paula foi [media]".

Respostas:

Codigo
# Dicionário com o desempenho (notas) de cada colaborador
desempenho = {
    "Lira": [8, 9, 7],
    "Paula": [10, 9, 10],
    "Tiago": [6, 7, 8]
}

# Solicita o nome do colaborador
nome = input("Digite o nome de um colaborador:")

# Recupera a lista de notas do colaborador informado
notas = desempenho[nome]

# Exibe o nome e as notas do colaborador
print("Nome:", nome)
print("Notas", notas)

# Calcula a média das notas do colaborador
media_notas = sum(notas) / len(notas)

# Exibe a média das notas
print("Media", media_notas)

Exercício 5: Limpeza de Banco de Dados (Setor de TI): o sistema de e-commerce descontinuou alguns produtos. Você tem o dicionário:

produtos = {"celular": 1500, "camera": 800, "radio": 200, "fone": 100}.

O item "radio" deve ser removido por estar obsoleto. Crie um cĂłdigo que:

1. Remova o item "radio" do dicionário usando o método .pop().

2. Imprima o valor do produto que foi removido para fins de log.

3. Verifique se o produto "celular" ainda existe no dicionário e imprima True ou False.

Respostas:

Codigo
# Dicionário com produtos e seus preços
produtos = {"celular": 1500, "camera": 800, "radio": 200, "fone": 100}

# Item que será removido do dicionário
item_removido = "radio"

# Remove o item e guarda o preço dele para o log
preco_removido = produtos.pop(item_removido)

# Exibe o que saiu do catálogo, para fins de log
print("Removido:", item_removido, "-", preco_removido)

# Exibe o dicionário após a remoção
print(produtos)

# Verifica se o item "celular" ainda existe no dicionário
celular_no_dic = "celular" in produtos

# Exibe o resultado da verificação
print("Celular no estoque?", celular_no_dic)

Lista 7: ExercĂ­cios com for

O loop for permite executar o mesmo cĂłdigo mĂşltiplas vezes, essencial para processar listas de dados ou automatizar tarefas repetitivas.

Exercício 1: Automação de Convites (Setor de Eventos/RH): a empresa terá um treinamento e você precisa simular o envio de 10 lembretes no console fazendo a contagem regressiva para aparecer no sistema da empresa. Use a função range() para imprimir 10 vezes a mensagem: "Faltam X minutos para começar o treinamento".

Respostas:

Codigo
# Loop que percorre os números de 0 até 9
for i in range(10):
    # Calcula quantos minutos faltam para iniciar o treinamento
    tempo_falta = 10 - i

    # Exibe a contagem regressiva
    print(f"Faltam {tempo_falta} minutos para começar o treinamento")

Exercício 2: Cálculo de Comissão Progressiva (Setor de Vendas): você tem uma lista de vendas de um vendedor:

vendas = [2000, 5000, 1000, 8000, 3000].

A regra de comissĂŁo Ă©:

  • Vendas acima de R$ 4.000,00: comissĂŁo de 10%.
  • Vendas atĂ© R$ 4.000,00: comissĂŁo de 5%. Crie um programa que percorra a lista e, ao final, exiba o valor total que o vendedor receberá de comissĂŁo.

Respostas:

Codigo
# Lista com os valores das vendas realizadas
vendas = [2000, 5000, 1000, 8000, 3000]

# Variável para acumular o valor total das comissões
comissao_total = 0

# Percorre cada valor de venda da lista
for venda in vendas:
    # Define o percentual de comissĂŁo conforme o valor da venda
    if venda > 4000:
        # Vendas acima de 4000 tĂŞm comissĂŁo de 10%
        comissao = 0.1
    else:
        # Vendas até 4000 têm comissão de 5%
        comissao = 0.05

    # Soma a comissĂŁo desta venda ao total acumulado
    comissao_total = comissao_total + comissao * venda

# Exibe o valor total de comissões formatado em reais
print(f"ComissĂŁo total de R${comissao_total:,.2f}")

Exercício 3: Verificação de Estoque Crítico (Setor de Logística): dada a lista de produtos

estoque_produtos = ["monitor", "teclado", "mouse", "headset", "gabinete"]

A lista correspondente de quantidades:

estoque_quantidades = [5, 12, 2, 8, 15].

O estoque mínimo para qualquer item é 8 unidades. Crie um programa que percorra as listas e, para cada item que esteja abaixo do mínimo, imprima: "ALERTA: O produto [nome] está com apenas [quantidade] unidades no estoque!".

Respostas:

Codigo
# Lista com os nomes dos produtos em estoque
estoque_produtos = ["monitor", "teclado", "mouse", "headset", "gabinete"]

# Lista com as quantidades correspondentes de cada produto
estoque_quantidades = [5, 12, 2, 8, 15]

# Percorre as quantidades usando enumerate para obter Ă­ndice e valor
for i, quantidade in enumerate(estoque_quantidades):
    # Verifica se a quantidade está abaixo do limite mínimo
    if quantidade < 8:
        # Usa o Ă­ndice para identificar o produto correspondente
        produto = estoque_produtos[i]

        # Exibe um alerta de baixo estoque
        print(
            f"ALERTA: O produto {produto} está com apenas "
            f"{quantidade} unidades no estoque!"
        )

Exercício 4: Análise de Custos Mensais (Setor Financeiro): você tem dois dicionários: um com a meta de gastos de cada mês e outro com os gastos reais.

metas = {"jan": 1000, "fev": 1200, "mar": 1100} gastos = {"jan": 900, "fev": 1350, "mar": 1100}

Crie um loop que percorra os meses e informe para cada mĂŞs:

  • Se o gasto foi menor ou igual Ă  meta: "MĂŞs [mĂŞs]: Dentro do orçamento."
  • Se o gasto ultrapassou a meta: "MĂŞs [mĂŞs]: Orçamento estourado em R$[valor da diferença]."

Respostas:

Codigo
# Metas de orçamento por mês
metas = {"jan": 1000, "fev": 1200, "mar": 1100}

# Gastos realizados por mĂŞs
gastos = {"jan": 900, "fev": 1350, "mar": 1100}

# Percorre cada mês presente no dicionário de gastos
for mes in gastos:
    # Verifica se os gastos ultrapassaram a meta do mĂŞs
    if gastos[mes] > metas[mes]:
        # Calcula quanto o orçamento foi ultrapassado
        diferenca = gastos[mes] - metas[mes]

        # Exibe mensagem de alerta
        print(f"Mês {mes}: Orçamento estourado em R${diferenca}.")
    else:
        # Caso os gastos estejam dentro da meta
        print(f"Mês {mes}: Dentro do orçamento.")

Exercício 5: Reajuste Geral de Preços (Setor Comercial): devido à inflação, a empresa decidiu aumentar o preço de todos os seus produtos em um percentual decidido pelo usuário. O catálogo atual é:

precos = {"celular": 1500, "tablet": 2500, "notebook": 5000}.

  1. Peça ao usuário para digitar o percentual de aumento (ex: 10 para 10%).
  2. Use um loop para atualizar cada preço dentro do dicionário.
  3. Ao final, exiba o novo catálogo de preços formatado.

Respostas:

Codigo
# Dicionário com os preços atuais dos produtos
precos = {"celular": 1500, "tablet": 2500, "notebook": 5000}

# Solicita o percentual de aumento (ex: 10%)
perc_aumento = input("Qual o aumento planejado?")

# Remove o sĂ­mbolo de porcentagem
perc_aumento = perc_aumento.replace("%", "")

# Converte o valor para nĂşmero decimal
perc_aumento = float(perc_aumento) / 100

# Percorre todos os produtos do dicionário
for produto in precos:
    # Aplica o aumento percentual ao preço do produto
    precos[produto] = precos[produto] * (1 + perc_aumento)

# Exibe os preços atualizados
print(precos)

Lista 8: Exercícios com funções

Funções permitem empacotar blocos de código que você usa repetidamente, tornando programas mais organizados e fáceis de manter.

Exercício 1: Padronizador de Nomes de Produtos (Setor de E-commerce): muitas vezes, os nomes dos produtos entram no sistema de qualquer jeito (ex: "iPHonE 13", " macbook air "). Crie uma função chamada padronizar_texto que receba uma string como parâmetro e retorne esse texto sem espaços extras nas extremidades e com todas as palavras com a primeira letra maiúscula (formato de título). Teste a função com uma lista de nomes bagunçados.

produtos_baguncados = [ " iphone 13 ", "MACBOOK PRO ", " aIrPoDs Pro", "iPad mini ", " caixa de som bluetooth " ]

Respostas:

Python
# Lista de produtos com nomes despadronizados
# Contém espaços extras e letras fora do padrão
produtos_baguncados = [
    " iphone 13 ",
    "MACBOOK PRO ",
    " aIrPoDs Pro",
    "iPad mini ",
    " caixa de som bluetooth "
]

# Função responsável por padronizar textos
# Remove espaços extras e ajusta o formato do texto
def padronizar_texto(texto):
    # Remove espaços no início e no fim do texto
    texto = texto.strip()

    # Converte o texto para formato de tĂ­tulo (Primeira Letra MaiĂşscula)
    texto = texto.title()

    # Retorna o texto padronizado
    return texto


# --- 3 maneiras de criar a lista de produtos padronizados ---

# 1ª opção: usando loop for tradicional
produtos_padronizados = []
for produto in produtos_baguncados:
    # Padroniza o nome do produto
    produto_padronizado = padronizar_texto(produto)

    # Adiciona o produto padronizado na nova lista
    produtos_padronizados.append(produto_padronizado)

# Exibe a lista padronizada
print(produtos_padronizados)


# 2ª opção: usando list comprehension (forma mais compacta)
produtos_padronizados2 = [
    padronizar_texto(produto) for produto in produtos_baguncados
]

# Exibe a lista padronizada
print(produtos_padronizados2)


# 3ª opção: usando a função map
# Aplica a função padronizar_texto em todos os itens da lista
produtos_padronizados3 = list(map(padronizar_texto, produtos_baguncados))

# Exibe a lista padronizada
print(produtos_padronizados3)

Exercício 2: Calculadora de Imposto Sobre Serviço - ISS (Setor Fiscal) Crie uma função chamada calcular_iss que receba o valor de um serviço.

  • Se o valor for maior que R$ 5.000,00, a taxa Ă© de 5%.
  • Caso contrário, a taxa Ă© de 3%. A função deve retornar o valor do imposto (e nĂŁo o valor total).
  • Depois, use essa função para calcular o imposto de uma nota de R$ 8.000,00 e outra de R$ 2.000,00, exibindo os resultados.

Respostas:

Python
# Função que calcula o valor do ISS com base no valor informado
def calcular_iss(valor):
    # Define a taxa conforme o valor do serviço
    if valor > 5000:
        taxa = 0.05  # 5% para valores acima de 5000
    else:
        taxa = 0.03  # 3% para valores até 5000

    # Calcula o imposto
    imposto = valor * taxa

    # Retorna o valor do imposto
    return imposto

# Testes da função com valores diferentes
print(calcular_iss(8000))
print(calcular_iss(2000))

Exercício 3: Analisador de Margem de Lucro (Setor Financeiro): crie uma função chamada analisar_margem que receba o faturamento e o custo. A função deve calcular a margem (lucro / faturamento).

  • Se a margem for maior ou igual a 30%, retorne "Margem Saudável".
  • Se for menor que 30%, retorne "Margem Baixa". Exiba o resultado da função para um produto que faturou R$ 10.000,00 com custo de R$ 6.000,00.

Respostas:

Python
# Função que analisa a margem de lucro de uma operação
def analisar_margem(faturamento, custo):
    # Calcula o lucro
    lucro = faturamento - custo

    # Calcula a margem de lucro
    margem = lucro / faturamento

    # Avalia se a margem é considerada saudável
    if margem >= 0.3:
        return "Margem Saudável"
    else:
        return "Margem Baixa"

# Exibe o resultado da análise
print(analisar_margem(10000, 6000))

Exercício 4: Verificador de Meta de Vendedores (Setor Comercial): crie uma função chamada quem_bateu_meta que receba dois parâmetros: um dicionário de vendedores (onde a chave é o nome e o valor é o faturamento) e o valor da meta. A função deve percorrer o dicionário e imprimir: "Vendedor [Nome] bateu a meta!" apenas para aqueles que atingiram ou superaram o valor da meta. Dica: Use um loop for dentro da função.

equipe_vendas = { "JoĂŁo": 12000, "Maria": 9500, "Ricardo": 10000, "Fernanda": 15200, "Paulo": 5000 }

meta_objetivo = 10000

Respostas:

Python
# Função que verifica quais vendedores bateram a meta
def quem_bateu_meta(vendas_vendedores: dict, meta: float):
    # Percorre cada vendedor no dicionário
    for vendedor in vendas_vendedores:
        # Verifica se o vendedor atingiu ou superou a meta
        if vendas_vendedores[vendedor] >= meta:
            print(f"Vendedor {vendedor} bateu a meta!")

# Dicionário com os valores de vendas por vendedor
dic_vendedores = {
    "JoĂŁo": 12000,
    "Maria": 9500,
    "Ricardo": 10000,
    "Fernanda": 15200,
    "Paulo": 5000
}

# Valor da meta de vendas
meta = 10000

# Chamada da função para verificar quem bateu a meta
quem_bateu_meta(dic_vendedores, meta)

Exercício 5: Conversor de Moeda Interativo (Setor de Importação) A empresa precisa converter preços de uma lista em Dólar para Real.

  1. Crie uma função chamada converter_para_real que receba um preço em dólar e a cotação do dia, retornando o valor em real.
  2. Crie uma segunda função chamada processar_lista_precos que receba uma lista de preços em dólar e a cotação. Dentro dela, use a primeira função para calcular o valor de cada item e exiba: "O item custa R$[valor]". Teste com a lista: precos_usd = [100, 50, 250] e cotação de 5.20.

Respostas:

Python
# Função que converte um valor em dólares para reais
def converter_para_real(valor_em_dolares, cotacao_dolar):
    # Multiplica o valor em dólar pela cotação atual
    valor_em_real = valor_em_dolares * cotacao_dolar

    # Retorna o valor convertido
    return valor_em_real

# Função que processa uma lista de preços em dólar
def processar_lista_precos(lista_precos_dolar, cotacao_dolar):
    # Percorre cada item da lista
    for item in lista_precos_dolar:
        # Converte o valor para reais usando a função auxiliar
        valor_reais = converter_para_real(item, cotacao_dolar)

        # Exibe o valor em dĂłlar e o valor convertido para reais
        print(f"O item custa US${item} e em reais: R${valor_reais}")

# Lista de preços em dólar
precos_usd = [100, 50, 250]

# Cotação atual do dólar
cotacao_dolar = 5.20

# Chamada da função para processar a lista de preços
processar_lista_precos(precos_usd, cotacao_dolar)

Lista 9: ExercĂ­cios com tuplas

Tuplas são como listas, mas imutáveis, como coordenadas geográficas (latitude e longitude), datas (ano, mês, dia), ou configurações fixas do sistema. Uma vez criadas, não podem ter elementos adicionados ou removidos, apenas consultados.

Exercício 1: Localização de Entregas (Setor de Logística): uma empresa de logística armazena as coordenadas de entrega em tuplas:

coordenadas = (-23.5505, -46.6333).

Crie um código que receba essa tupla e use o unpacking para extrair os valores em duas variáveis: latitude e longitude. Em seguida, exiba a mensagem: "Iniciando entrega. Latitude: [valor], Longitude: [valor]".

Respostas:

Codigo
# Tupla contendo latitude e longitude
coordenadas = (-23.5505, -46.6333)

# Desempacotamento da tupla:
# o primeiro valor vai para latitude
# o segundo valor vai para longitude
latitude, longitude = coordenadas

# Exibe a mensagem com as coordenadas formatadas
print(f"Iniciando entrega. Latitude: {latitude}, Longitude: {longitude}")

Exercício 2: Resumo de Folha de Pagamento (Setor de RH): crie uma função chamada calcular_folha que receba o salário bruto de um funcionário. A função deve calcular e retornar dois valores:

  1. O valor do desconto de impostos (fixado em 10%).
  2. O salário líquido (salário bruto - desconto). Após criar a função, chame-a para um salário de R$ 5.000,00, faça o unpacking do retorno e exiba: "Desconto: R$[valor] | Salário Líquido: R$[valor]".

Respostas:

Python
# Função que calcula o desconto e o salário líquido
def calcular_folha(salario):
    # Percentual de desconto (10%)
    perc_desconto = 0.1
    
    # Valor do desconto calculado sobre o salário
    desconto = perc_desconto * salario
    
    # Salário líquido após o desconto
    salario_liquido = salario - desconto
    
    # Retorna dois valores: desconto e salário líquido
    return desconto, salario_liquido

# Salário bruto
salario = 5000

# Chamada da função com desempacotamento do retorno
desconto_salarial, salario_liq = calcular_folha(salario)

# Exibe os valores calculados
print(f"Desconto: R${desconto_salarial} | Salário Líquido: R${salario_liq}")

ExercĂ­cio 3: Processamento de Vendas por Unidade (Setor Comercial) VocĂŞ tem uma lista de tuplas onde cada tupla representa uma venda:

vendas_dia = [("Monitor", 900, 2), ("Teclado", 150, 5), ("Mouse", 80, 10)].

Cada tupla contém (produto, preco_unitario, quantidade). Crie um loop for que use unpacking diretamente na estrutura do loop para extrair os três valores e, para cada item, imprima: "Produto: [nome] | Total: R$[preco * quantidade]".

Respostas:

Codigo
# Lista de tuplas contendo:
# (produto, preço unitário, quantidade vendida)
vendas_dia = [
    ("Monitor", 900, 2),
    ("Teclado", 150, 5),
    ("Mouse", 80, 10)
]

# Loop que percorre cada venda
# e desempacota os valores da tupla
for produto, preco, qtde in vendas_dia:
    # Calcula o total vendido por produto
    total = preco * qtde
    print(f"Produto: {produto} | Total: R${total}")

Exercício 4: Performance de Vendas Regionais (Setor de Dashboard): crie uma função chamada analisar_vendas que receba uma lista de números (vendas). A função deve retornar o total vendido e a média das vendas. Dado o dicionário:

dados_filiais = {"Matriz": [10000, 15000, 20000], "Filial Sul": [5000, 7000]}:

1. Percorra o dicionário.

2. Para cada filial, use a função e faça o unpacking do resultado.

3. Exiba: "Filial [Nome] -> Total: R$[valor], Média: R$[valor]".

Respostas:

Python
# Função que analisa uma lista de vendas
def analisar_vendas(lista_vendas):
    # Soma de todas as vendas
    total_vendas = sum(lista_vendas)
    
    # Média das vendas
    media_vendas = total_vendas / len(lista_vendas)
    
    # Retorna total e média
    return total_vendas, media_vendas

# Dicionário com filiais e suas respectivas vendas
dados_filiais = {
    "Matriz": [10000, 15000, 20000],
    "Filial Sul": [5000, 7000]
}

# Loop que percorre cada filial
for filial in dados_filiais:
    # Recupera a lista de vendas da filial
    vendas_filial = dados_filiais[filial]
    
    # Chama a função e desempacota os resultados
    total_vendas_filial, media_vendas_filial = analisar_vendas(vendas_filial)
    
    # Exibe os resultados
    print(
        f"Filial {filial} -> "
        f"Total: R${total_vendas_filial}, "
        f"Média: R${media_vendas_filial}"
    )

Exercício 5: Gestão de Chamados de Suporte (Setor de TI): o sistema de chamados precisa de um resumo diário. Crie uma função resumo_chamados que receba uma lista com tempos de resposta (em minutos). Ela deve retornar a quantidade de chamados e o tempo máximo de espera. Teste a função com a lista tempos = [15, 45, 10, 120, 30]. Desempacote os resultados e exiba uma mensagem formatada alertando sobre o tempo máximo encontrado.

Respostas:

Python
# Função que resume informações dos chamados
def resumo_chamados(lista_tempos_chamados):
    # Quantidade de chamados abertos
    qtde_chamados = len(lista_tempos_chamados)
    
    # Maior tempo de atendimento registrado
    tempo_maximo = max(lista_tempos_chamados)
    
    # Retorna a quantidade e o tempo máximo
    return qtde_chamados, tempo_maximo

# Lista com os tempos de atendimento (em minutos)
tempos = [15, 45, 10, 120, 30]

# Chamada da função com desempacotamento
qtde, tempo_maximo = resumo_chamados(tempos)

# Exibe o resumo final
print(
    f"Foram abertos {qtde} chamados hoje. "
    f"Tempo Máximo de SLA: {tempo_maximo} minutos"
)

PrĂłximos passos

Dominar os exercícios básicos é apenas o início da jornada de aprendizado. A partir desse ponto, o próximo passo natural é aplicar esse conhecimento em situações reais, por meio do desenvolvimento de projetos práticos. É nos projetos que você começa a enxergar como a programação funciona fora de um ambiente totalmente controlado.

Enquanto os exercícios ajudam a aprender conceitos de forma isolada e objetiva, os projetos exigem a combinação de vários conhecimentos ao mesmo tempo para resolver problemas maiores e menos estruturados. Por isso, é recomendado começar com projetos pequenos e alinhados aos seus interesses, como uma calculadora personalizada, um organizador de tarefas ou até mesmo um script simples de automação.

Além disso, é fundamental aprender a utilizar bibliotecas essenciais do Python, que ampliam significativamente as possibilidades de uso da linguagem. Ferramentas como Pandas para análise de dados, Selenium para automação web e Flask para criação de aplicações web abrem novos caminhos de aprendizado. Apesar de cada biblioteca representar um novo universo, os fundamentos praticados nos exercícios continuam sendo a base para evoluir com segurança.

ConclusĂŁo

Aprender Python através de exercícios progressivos é como subir uma escada: cada degrau te leva a um novo nível de compreensão. Você começou com variáveis simples e agora consegue criar funções complexas, manipular estruturas de dados, e resolver problemas reais.

O mais importante não é memorizar sintaxe, mas desenvolver o raciocínio lógico para decompor problemas em passos menores que o computador pode executar. Essa habilidade transcende linguagens de programação e te acompanha por toda a carreira.

Lembre-se, programação se aprende programando. Cada exercício que você completa, cada erro que você resolve, cada conceito que você aplica, tudo isso constrói sua base como desenvolvedor(a).

Quer se aprofundar ainda mais? Temos um minicurso de Automação com Python, um minicurso de Criação de sites com Python, um minicurso de Análise de dados com Python e o curso completo de Python.

Além disso, se preferir esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que vocĂŞ aprende neste vĂ­deo

Resposta rápida: São dezenas de exercícios resolvidos, organizados por assunto e na ordem em que a linguagem se aprende: variáveis e operadores, texto com f-string e métodos de string, entrada de dados com input e tratamento do que foi digitado, listas, condicionais, dicionários, laços com for, funções e tuplas. Cada um parte de um enunciado de trabalho e termina com o código rodando.

Neste vĂ­deo (179 min):

  • 0:00 - Como a aula funciona: enunciado, pausa para tentar e resolução comentada
  • 3:00 - Variáveis, e a dica de dar nome que se entende trĂŞs meses depois
  • 8:00 - DivisĂŁo inteira e resto da divisĂŁo: o operador que resolve o problema dos caminhões
  • 18:00 - Margem de lucro, e a variável booleana que guarda se a meta foi batida
  • 19:00 - Texto: f-string, com separador de milhar e duas casas decimais
  • 21:00 - Limpando texto sujo com strip, lower, title e replace
  • 27:00 - Achando a posição de um caractere no texto para recortar o que interessa
  • 37:00 - Entrada de dados com input, e por que o que o usuário digita chega como texto
  • 51:00 - Listas: append, insert, pop e remove, e o cuidado de nĂŁo cravar a posição
  • 61:00 - Ordenação com sort e reverse, e o que significa editar em place
  • 73:00 - Condicionais com if e elif, e os operadores and, or e in
  • 91:00 - Dicionários: chave e valor, keys, values e pop
  • 108:00 - Laços: for com range, enumerate para a posição, zip para duas listas e map
  • 129:00 - Funções com def e return, e tuplas devolvendo dois valores de uma vez

Trechos do vĂ­deo:

  • Sempre que vocĂŞ for criar uma variável no Python, use nomes intuitivos para ela.
  • Pense em quem vai ler esse cĂłdigo daqui a trĂŞs meses: construa cĂłdigos que sejam sempre intuitivos.
  • O map aplica uma função dentro de uma lista de elementos.

Perguntas frequentes

1. Em que ordem devo resolver os exercĂ­cios de Python?

Na ordem das listas deste artigo: variáveis, strings, input, listas, condicionais, dicionários, for, funções e tuplas. Cada lista usa o que veio antes, então pular etapa costuma travar mais adiante do que economiza no começo.

2. Preciso instalar alguma coisa para começar?

Só o Python e um editor de código. O passo a passo aqui usa o VS Code, e a seção Preparando o Ambiente traz o vídeo de configuração. Nenhum exercício usa biblioteca externa: tudo roda com o Python puro, recém-instalado.

3. Devo abrir a resposta quando travar em um exercĂ­cio?

Tente por uns 15 minutos e releia o enunciado antes. Se abrir a resolução, feche-a em seguida e reescreva o cĂłdigo do zero — Ă© a reescrita que fixa o raciocĂ­nio, nĂŁo a leitura.

4. Esses exercĂ­cios servem para treinar para entrevista?

Servem. Os enunciados são casos de empresa (bônus de vendas, controle de estoque, margem de lucro), que é o formato de teste técnico de vaga júnior. Resolva sem consultar e explique o raciocínio em voz alta enquanto escreve: é isso que o entrevistador avalia.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos