10 Exercícios de Python para Iniciantes com Solução
Resolver exercícios práticos é o caminho mais eficaz para consolidar a sintaxe do Python e desenvolver autonomia de raciocínio. Recomendamos ler o enunciado de cada questão, tentar elaborar o código por conta própria e depois conferir a solução comentada para comparar lógicas e técnicas de resolução.
1. Olá Mundo e Variáveis Formatadas
Enunciado: Crie um programa que armazene seu nome e sua idade em variáveis separadas e exiba uma mensagem de apresentação personalizada utilizando f-strings.
Solução comentada:
# Exercício 1: Olá Mundo e Variáveis
nome = "Ana"
idade = 22
# Exibe a mensagem interpolando os valores
print(f"Olá! Meu nome é {nome} e tenho {idade} anos.")
Resultado esperado:
Olá! Meu nome é Ana e tenho 22 anos.
As f-strings (prefixo f antes das aspas) permitem inserir variáveis diretamente dentro do texto entre chaves {}, garantindo legibilidade e clareza.
2. Cálculo de Média Escolar Aritmética
Enunciado: Defina três variáveis contendo notas de 0 a 10. Calcule a média aritmética simples e imprima o resultado formatado com exatamente uma casa decimal.
Solução comentada:
# Exercício 2: Cálculo de Média
nota1 = 7.5
nota2 = 8.0
nota3 = 9.5
# Parênteses garantem a precedência da soma
media = (nota1 + nota2 + nota3) / 3
print(f"Média final: {media:.1f}")
Resultado esperado:
Média final: 8.3
O uso dos parênteses garante que a soma das três notas ocorra antes da divisão por 3. A formatação :.1f arredonda a exibição para uma casa decimal.
3. Verificador de Número Par ou Ímpar
Enunciado: Escreva um programa que analise um número inteiro e informe se ele é par ou ímpar utilizando o operador de módulo (resto da divisão).
Solução comentada:
# Exercício 3: Par ou Ímpar
numero = 14
# Se o resto da divisão por 2 for zero, o número é par
if numero % 2 == 0:
print(f"O número {numero} é PAR.")
else:
print(f"O número {numero} é ÍMPAR.")
Resultado esperado:
O número 14 é PAR.
O operador % calcula o resto da divisão inteira. Todo número par dividido por 2 deixa resto 0, enquanto números ímpares deixam resto 1.
4. Classificação de Faixa Etária com if/elif/else
Enunciado: Desenvolva uma rotina que classifique uma pessoa como 'Menor de idade' (menos de 18 anos), 'Adulto' (18 a 59 anos) ou 'Idoso' (60 anos ou mais).
Solução comentada:
# Exercício 4: Classificação por Idade
idade = 17
if idade < 18:
print("Menor de idade")
elif idade < 60:
print("Adulto")
else:
print("Idoso")
Resultado esperado:
Menor de idade
A estrutura if-elif-else testa as condições em ordem e executa exclusivamente o primeiro bloco cuja expressão for verdadeira.
5. Tabuada de Multiplicação com Laço for
Enunciado: Imprima a tabuada completa de multiplicação para um número de sua escolha, variando o multiplicador de 1 até 10 com a função range().
Solução comentada:
# Exercício 5: Tabuada com laço for
numero = 7
# range(1, 11) gera os multiplicadores de 1 a 10
for i in range(1, 11):
print(f"{numero} x {i} = {numero * i}")
Resultado esperado:
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
O laço for percorre sequências geradas pelo range(). Em Python, range(1, 11) inclui o valor inicial 1 e para antes do valor final 11.
6. Soma Progressiva com Laço while
Enunciado: Utilize o laço while para acumular e exibir a soma de todos os números inteiros de 1 até um determinado valor limite.
Solução comentada:
# Exercício 6: Soma progressiva com while
limite = 5
soma = 0
contador = 1
while contador <= limite:
soma += contador
contador += 1
print(f"Soma de 1 até {limite}: {soma}")
Resultado esperado:
Soma de 1 até 5: 15
O laço while é ideal quando queremos iterar enquanto uma condição for verdadeira. É fundamental incrementar o contador para evitar loops infinitos.
7. Maior e Menor Valor em uma Lista
Enunciado: Crie uma lista com valores numéricos representando preços e encontre o maior e o menor preço utilizando funções nativas do Python.
Solução comentada:
# Exercício 7: Maior e menor valor em lista
precos = [120.50, 45.00, 89.90, 310.00, 15.75]
mais_caro = max(precos)
mais_barato = min(precos)
print(f"Maior preço: R$ {mais_caro:.2f}")
print(f"Menor preço: R$ {mais_barato:.2f}")
Resultado esperado:
Maior preço: R$ 310.00
Menor preço: R$ 15.75
As funções nativas max() e min() operam sobre qualquer iterável numérico, dispensando laços manuais e otimizando a velocidade de execução.
8. Contador de Caracteres Específicos em String
Enunciado: Escreva um algoritmo que receba uma frase e conte quantas vogais (a, e, i, o, u) ela contém, ignorando diferenças entre maiúsculas e minúsculas.
Solução comentada:
# Exercício 8: Contagem de vogais
frase = "aprenda a programar"
vogais = "aeiou"
total_vogais = 0
for letra in frase.lower():
if letra in vogais:
total_vogais += 1
print(f"Total de vogais encontradas: {total_vogais}")
Resultado esperado:
Total de vogais encontradas: 7
O método .lower() normaliza o texto para minúsculas e o operador in verifica a presença de cada caractere dentro do conjunto de vogais.
9. Função Reutilizável de Cálculo de Desconto
Enunciado: Defina uma função chamada aplicar_desconto que receba o preço original e o percentual de desconto, retornando o preço final calculado.
Solução comentada:
# Exercício 9: Função com retorno de valor
def aplicar_desconto(preco, porcentagem):
valor_desconto = preco * (porcentagem / 100)
return preco - valor_desconto
preco_final = aplicar_desconto(200.0, 15)
print(f"Preço com 15% de desconto: R$ {preco_final:.2f}")
Resultado esperado:
Preço com 15% de desconto: R$ 170.00
A instrução def cria blocos reutilizáveis com parâmetros. A palavra reservada return envia o valor processado de volta para quem chamou a função.
10. Dicionário de Dados com Regra de Aprovação
Enunciado: Armazene os dados de um estudante em um dicionário (nome, matéria e lista de notas), calcule a média e adicione a chave 'aprovado' ao registro.
Solução comentada:
# Exercício 10: Dicionário e regra de negócio
aluno = {
"nome": "Carlos",
"materia": "Python",
"notas": [8.0, 7.5, 9.0]
}
# Calcula a média a partir da lista interna
media = sum(aluno["notas"]) / len(aluno["notas"])
aluno["aprovado"] = media >= 7.0
print(f"Aluno: {aluno['nome']}")
print(f"Média: {media:.1f}")
print(f"Aprovado: {aluno['aprovado']}")
Resultado esperado:
Aluno: Carlos
Média: 8.2
Aprovado: True
Dicionários agrupam dados heterogêneos sob chaves descritivas. Novas propriedades podem ser inseridas dinamicamente atribuindo um valor a uma nova chave.
Perguntas Frequentes sobre Exercícios de Python
Como resolver os exercícios de Python no EasyCode?
Você pode ler o enunciado de cada exercício, tentar elaborar a sua própria solução e clicar no botão 'Testar no Editor Interativo' para digitar e executar o código diretamente no navegador via WebAssembly.
Os exercícios de Python são indicados para iniciantes?
Sim. A lista foi desenhada em ordem progressiva de dificuldade, começando com conceitos básicos de saída de dados (print) e variáveis, avançando para condicionais, laços de repetição (for e while), manipulação de listas e criação de funções.
Preciso instalar algum programa para executar as soluções?
Não. O EasyCode executa Python 3 diretamente no navegador sem exigir instalação de interpretadores, compiladores ou extensões locais.
Existe correção automática dos exercícios no site?
Sim. Além deste guia aberto com gabarito comentado, a plataforma conta com uma área de desafios e aulas interativas com verificação passo a passo em tempo real.
Apoie o EasyCode 💜
O EasyCode é gratuito, independente e sem anúncios. Manter a plataforma rápida, com compiladores no navegador e novos conteúdos atualizados tem custos reais todo mês. Se o site está te ajudando a aprender, veja como apoiar o projeto para continuarmos sempre no ar e acessíveis para todos.