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.
O que vocĂŞ vai ver aqui?
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.

Com ela aberta, criaremos a seguinte estrutura de arquivos:
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.pyEm 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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)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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
- Extrair todos os valores (faturamentos) para uma lista.
- Calcular e exibir o faturamento total da empresa (soma de todas as regiões).
- Calcular e exibir o faturamento médio das regiões.
Respostas:
# 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:
- Acesse a lista de notas da "Paula".
- Calcule a média das notas (soma das notas dividida pela quantidade de notas).
- Exiba o resultado: "A média de Paula foi [media]".
Respostas:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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}.
- Peça ao usuário para digitar o percentual de aumento (ex: 10 para 10%).
- Use um loop para atualizar cada preço dentro do dicionário.
- Ao final, exiba o novo catálogo de preços formatado.
Respostas:
# 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:
# 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:
# 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:
# 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:
# 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.
- 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.
- 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:
# 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:
# 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:
- O valor do desconto de impostos (fixado em 10%).
- 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:
# 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:
# 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:
# 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:
# 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!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercĂcios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercĂcios e gabarito. Escolha a sua e comece hoje.








