0% acharam este documento útil (0 voto)
0 visualizações22 páginas

Apostila Python 40 Completos

O documento apresenta uma coleção de 40 exercícios de lógica de programação em Python, cada um acompanhado de código fonte e explicações sobre seu funcionamento. Os exercícios abrangem conceitos básicos como entrada de dados, operações matemáticas, condicionais, loops e manipulação de listas. O objetivo é ensinar programação de forma prática e acessível para o ensino técnico.

Enviado por

sidneygamerdc
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
0 visualizações22 páginas

Apostila Python 40 Completos

O documento apresenta uma coleção de 40 exercícios de lógica de programação em Python, cada um acompanhado de código fonte e explicações sobre seu funcionamento. Os exercícios abrangem conceitos básicos como entrada de dados, operações matemáticas, condicionais, loops e manipulação de listas. O objetivo é ensinar programação de forma prática e acessível para o ensino técnico.

Enviado por

sidneygamerdc
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Lógica de Programação com Python

40 Exercícios Completos com Códigos e Explicações para o Ensino


Técnico

1. Olá, Mundo Personalizado

Código Fonte:

nome = input('Qual é o seu nome? ')


print(f'Olá, {nome}! Bem-vindo ao mundo do Python.')

O que este código faz?


A função input() aguarda o usuário digitar algo e guarda na variável 'nome'. A letra 'f'
antes das aspas no print() permite injetar a variável diretamente no texto usando
chaves {}.

2. Soma de Dois Números

Código Fonte:

n1 = int(input('Digite o primeiro número: '))


n2 = int(input('Digite o segundo número: '))
soma = n1 + n2
print(f'A soma entre {n1} e {n2} é {soma}')

O que este código faz?


Usamos int() para converter o texto capturado pelo input() em números inteiros. Sem
o int(), o Python apenas juntaria os dois textos (concatenação).
3. Calculadora de Média Escolar

Código Fonte:

nota1 = float(input('Primeira nota: '))


nota2 = float(input('Segunda nota: '))
media = (nota1 + nota2) / 2
print(f'A média final é {media:.2f}')

O que este código faz?


Utilizamos float() para permitir notas com casas decimais (ex: 7.5). Os parênteses
garantem que a soma ocorra antes da divisão. O ':.2f' formata o resultado para duas
casas decimais.

4. Conversor de Medidas

Código Fonte:

metros = float(input('Digite um valor em metros: '))


centimetros = metros * 100
milimetros = metros * 1000
print(f'{metros}m equivale a {centimetros}cm e {milimetros}mm.')

O que este código faz?


Um simples processamento matemático onde multiplicamos o valor de entrada para
obter os múltiplos do metro.
5. Tabuada Simples

Código Fonte:

num = int(input('Digite um número para ver sua tabuada: '))


print(f'{num} x 1 = {num*1}')
print(f'{num} x 2 = {num*2}')
print(f'{num} x 3 = {num*3}')

O que este código faz?


Este exemplo mostra a lógica sequencial sem usar repetição ainda. Multiplicamos a
variável diretamente dentro das f-strings.

6. Conversor de Temperatura

Código Fonte:

celsius = float(input('Temperatura em °C: '))


fahrenheit = (celsius * 9/5) + 32
print(f'A temperatura de {celsius}°C corresponde a {fahrenheit}°F.')

O que este código faz?


Aplicação de uma fórmula matemática na programação. A ordem de precedência dos
operadores (multiplicação/divisão antes de soma) é respeitada pelo Python.
7. Aluguel de Carros

Código Fonte:

dias = int(input('Quantos dias alugados? '))


km = float(input('Quantos Km rodados? '))
pago = (dias * 60) + (km * 0.15)
print(f'O total a pagar é de R${pago:.2f}')

O que este código faz?


Calcula múltiplos custos (diária de R$60 e R$0.15 por km) e os soma em uma única
variável de processamento.

8. Reajuste Salarial

Código Fonte:

salario = float(input('Qual o salário do funcionário? R$'))


novo_salario = salario + (salario * 15 / 100)
print(f'Com 15% de aumento, o salário passa a ser R${novo_salario:.
2f}')

O que este código faz?


Calculamos a porcentagem multiplicando por 15 e dividindo por 100, e somamos esse
valor ao salário original.
9. Preço com Desconto

Código Fonte:

preco = float(input('Qual o preço do produto? R$'))


desconto = preco * 0.05
preco_final = preco - desconto
print(f'O produto com 5% de desconto custará R${preco_final:.2f}')

O que este código faz?


Em vez de dividir por 100, multiplicamos diretamente pelo fator decimal (0.05 para
5%). É uma forma mais enxuta de calcular porcentagens.

10. Pintando a Parede

Código Fonte:

largura = float(input('Largura da parede: '))


altura = float(input('Altura da parede: '))
area = largura * altura
tinta = area / 2
print(f'Sua parede tem {area}m². Você precisará de {tinta}L de
tinta.')

O que este código faz?


Mostra a dependência de variáveis: calculamos a área primeiro, e usamos a variável
'area' para calcular os litros de tinta (1 litro para cada 2m²).
11. Radar Eletrônico

Código Fonte:

velocidade = float(input('Qual a velocidade do carro? '))


if velocidade > 80:
multa = (velocidade - 80) * 7
print(f'MULTADO! Você pagará uma multa de R${multa:.2f}')
print('Tenha um bom dia! Dirija com segurança.')

O que este código faz?


O bloco 'if' só executa se a condição for verdadeira. Note a indentação (espaços à
esquerda) obrigatória no Python. O último print() ocorre sempre, pois está fora do if.

12. Par ou Ímpar

Código Fonte:

numero = int(input('Me diga um número qualquer: '))


resultado = numero % 2
if resultado == 0:
print(f'O número {numero} é PAR')
else:
print(f'O número {numero} é ÍMPAR')

O que este código faz?


O operador '%' (módulo) retorna o resto da divisão. Todo número par dividido por 2
tem resto 0.
13. Custo da Viagem

Código Fonte:

distancia = float(input('Qual a distância da viagem em Km? '))


if distancia <= 200:
preco = distancia * 0.50
else:
preco = distancia * 0.45
print(f'O preço da sua passagem será de R${preco:.2f}')

O que este código faz?


A estrutura if/else permite duas rotas diferentes no código. Viagens curtas têm um
preço por km, viagens longas são mais baratas por km.

14. Ano Bissexto

Código Fonte:

ano = int(input('Que ano quer analisar? '))


if ano % 4 == 0 and ano % 100 != 0 or ano % 400 == 0:
print(f'O ano {ano} é BISSEXTO')
else:
print(f'O ano {ano} NÃO é BISSEXTO')

O que este código faz?


Uso de operadores lógicos 'and' (e) e 'or' (ou) para criar uma condição composta
baseada nas regras do calendário gregoriano.
15. Maior e Menor Valores

Código Fonte:

a = int(input('Primeiro valor: '))


b = int(input('Segundo valor: '))

menor = a
if b < a:
menor = b

print(f'O menor valor digitado foi {menor}')

O que este código faz?


Uma técnica comum: assumimos que o primeiro é o menor. Depois testamos o
segundo. Se for menor, substituímos a variável.

16. Aprovando Empréstimo

Código Fonte:

casa = float(input('Valor da casa: R$'))


salario = float(input('Salário do comprador: R$'))
anos = int(input('Quantos anos de financiamento? '))
prestacao = casa / (anos * 12)
minimo = salario * 0.30

if prestacao <= minimo:


print('Empréstimo CONCEDIDO!')
else:
print('Empréstimo NEGADO!')

O que este código faz?


Programa prático que cruza múltiplos dados. Se a parcela não exceder 30% do salário,
aprova.
17. Classificando Atletas

Código Fonte:

idade = int(input('Qual a sua idade? '))


if idade <= 9:
print('Categoria: MIRIM')
elif idade <= 14:
print('Categoria: INFANTIL')
elif idade <= 19:
print('Categoria: JÚNIOR')
else:
print('Categoria: MASTER')

O que este código faz?


Apresentação do 'elif' (senão se). Permite testar várias condições em cascata. Assim
que uma for verdadeira, o resto é ignorado.

18. Índice de Massa Corporal (IMC)

Código Fonte:

peso = float(input('Qual o seu peso (Kg)? '))


altura = float(input('Qual a sua altura (m)? '))
imc = peso / (altura ** 2)
print(f'Seu IMC é de {imc:.1f}')
if imc < 18.5:
print('Abaixo do peso')
elif 18.5 <= imc < 25:
print('Peso ideal')

O que este código faz?


Mostra como calcular potência matemática (altura ** 2) e como o Python permite
encadear operadores lógicos matemáticos diretamente na condição (18.5 <= imc < 25).
19. Gerenciador de Pagamentos

Código Fonte:

preco = float(input('Preço das compras: R$'))


print('1 - À vista (10% desc)\n2 - Cartão (Preço normal)')
opcao = int(input('Qual a opção? '))
if opcao == 1:
total = preco - (preco * 0.10)
elif opcao == 2:
total = preco
print(f'Sua compra vai custar R${total:.2f}')

O que este código faz?


Criação de um pequeno menu de opções utilizando 'if' e 'elif' para escolher a regra de
negócio aplicada.

20. Jogo da Adivinhação v1.0

Código Fonte:

import random
computador = [Link](0, 5)
jogador = int(input('Pensei num número entre 0 e 5. Tente adivinhar:
'))
if jogador == computador:
print('PARABÉNS! Você conseguiu me vencer!')
else:
print(f'GANHEI! Eu pensei no número {computador} e não no
{jogador}!')

O que este código faz?


Introdução à importação de módulos com 'import random'. A máquina gera um
número aleatório e o aluno usa lógica para verificar acerto.
21. Contagem Regressiva

Código Fonte:

import time
print('Iniciando contagem...')
for c in range(10, 0, -1):
print(c)
[Link](1)
print('BUM! BUM! POOOW!')

O que este código faz?


O laço 'for' usando 'range'. O -1 no final do range indica que a contagem é
decrescente. Importamos 'time' para pausar a tela por 1 segundo a cada volta.

22. Contagem de Pares

Código Fonte:

print('Números pares entre 1 e 50:')


for n in range(2, 51, 2):
print(n, end=' ')
print('Fim!')

O que este código faz?


O parâmetro de passo do range (terceiro número) é 2, o que faz o Python pular de 2
em 2. O 'end=" "' no print faz com que não pule linha.
23. Tabuada com Laço FOR

Código Fonte:

num = int(input('Digite um número para ver sua tabuada: '))


for c in range(1, 11):
print(f'{num} x {c} = {num*c}')

O que este código faz?


Reescrevendo o exercício 5 com 'for'. Com apenas 3 linhas de código, fazemos 10
operações. Isso ilustra o poder da repetição.

24. Validação de Dados

Código Fonte:

sexo = str(input('Informe seu sexo [M/F]: ')).strip().upper()


while sexo not in 'MF':
sexo = str(input('Dados inválidos. Informe seu sexo [M/F]:
')).strip().upper()
print(f'Sexo {sexo} registrado com sucesso.')

O que este código faz?


O 'while' (enquanto) cria um loop infinito até que o usuário digite a informação
correta. strip() remove os espaços e upper() garante que seja lido como maiúsculo.
25. Criando um Menu de Opções

Código Fonte:

opcao = 0
while opcao != 3:
print('[ 1 ] Somar\n[ 2 ] Multiplicar\n[ 3 ] Sair')
opcao = int(input('Sua opção: '))
if opcao == 1:
print('A soma é realizada')
elif opcao == 2:
print('A multiplicação é realizada')
print('Fim do programa!')

O que este código faz?


Um laço 'while' guiado por uma variável de controle. O programa fica rodando
enquanto o usuário não escolher a opção de saída (3).

26. Calculadora de Fatorial

Código Fonte:

n = int(input('Digite um número para calcular seu Fatorial: '))


c = n
f = 1
print(f'Calculando {n}! = ', end='')
while c > 0:
print(f'{c}', end=' ')
print('x ' if c > 1 else '= ', end='')
f *= c
c -= 1
print(f'{f}')

O que este código faz?


Exemplo clássico de matemática. A variável 'f' serve como acumulador (multiplicando
os valores). c -= 1 reduz o contador a cada loop.
27. Sequência de Fibonacci

Código Fonte:

termos = int(input('Quantos termos você quer mostrar? '))


t1 = 0
t2 = 1
print(f'{t1} - {t2}', end='')
cont = 3
while cont <= termos:
t3 = t1 + t2
print(f' - {t3}', end='')
t1 = t2
t2 = t3
cont += 1
print(' - FIM')

O que este código faz?


Lógica um pouco mais complexa, onde a próxima variável depende da soma das duas
anteriores. Exige manipulação e transição de variáveis na memória.

28. Tratamento de Vários Valores (Flag)

Código Fonte:

n = soma = cont = 0
while True:
n = int(input('Digite um número [999 para parar]: '))
if n == 999:
break
soma += n
cont += 1
print(f'Você digitou {cont} números e a soma foi {soma}.')

O que este código faz?


O uso de 'while True' cria um loop intencionalmente infinito, que só é quebrado
(interrompido) de dentro para fora usando o comando 'break'.
29. Maior e Menor Valores em Repetição

Código Fonte:

resp = 'S'
maior = menor = soma = quant = 0
while resp in 'Ss':
num = int(input('Digite um número: '))
soma += num
quant += 1
if quant == 1:
maior = menor = num
else:
if num > maior: maior = num
if num < menor: menor = num
resp = str(input('Quer continuar? [S/N] ')).upper().strip()
print(f'Média foi {soma/quant:.2f}, maior foi {maior} e menor
{menor}')

O que este código faz?


Combina quase tudo aprendido: variáveis acumuladoras, contadoras, condicionais
para detectar maior/menor e um laço while condicionado a uma string de resposta.

30. Tabuada com Interrupção

Código Fonte:

while True:
n = int(input('Quer ver a tabuada de qual valor? (Negativo para
parar): '))
if n < 0:
break
for c in range(1, 11):
print(f'{n} x {c} = {n*c}')
print('Programa encerrado!')

O que este código faz?


Uso de laços aninhados: um 'for' dentro de um 'while'. O while gerencia a repetição
geral do programa, e o for desenha a tabuada atual.
31. Valores Únicos em uma Lista

Código Fonte:

numeros = list()
while True:
n = int(input('Digite um valor: '))
if n not in numeros:
[Link](n)
print('Valor adicionado com sucesso...')
else:
print('Valor duplicado! Não vou adicionar.')
resp = str(input('Quer continuar? [S/N] '))
if resp in 'Nn':
break
print(f'Você digitou os valores {sorted(numeros)}')

O que este código faz?


Introdução às Listas. Usamos .append() para adicionar elementos. O operador 'not in'
é perfeito para garantir que não haverá números repetidos na coleção.
32. Dividindo Valores em Várias Listas

Código Fonte:

num = list()
pares = list()
impares = list()
while True:
[Link](int(input('Digite um número: ')))
resp = str(input('Quer continuar? [S/N] '))
if resp in 'Nn':
break
for v in num:
if v % 2 == 0:
[Link](v)
else:
[Link](v)
print(f'A lista completa é {num}\nA lista de pares é {pares}')

O que este código faz?


Armazena todos os números em uma lista e depois utiliza um 'for' para varrer a lista e
distribuir os números em duas listas secundárias baseado em uma condição if.
33. Boletim com Listas Compostas

Código Fonte:

ficha = list()
while True:
nome = str(input('Nome: '))
nota1 = float(input('Nota 1: '))
nota2 = float(input('Nota 2: '))
media = (nota1 + nota2) / 2
[Link]([nome, [nota1, nota2], media])
resp = str(input('Quer continuar? [S/N] '))
if resp in 'Nn':
break
print('-' * 26)
for indice, aluno in enumerate(ficha):
print(f'{indice:<4}{aluno[0]:<10}{aluno[2]:>8.1f}')

O que este código faz?


Listas dentro de listas (matrizes/estruturas complexas). Guardamos o nome (índice 0),
uma lista de notas (índice 1) e a média (índice 2). O :<10 formata as colunas na hora de
imprimir.
34. Dicionário de Aluno

Código Fonte:

aluno = dict()
aluno['nome'] = str(input('Nome: '))
aluno['media'] = float(input(f'Média de {aluno["nome"]}: '))
if aluno['media'] >= 7:
aluno['situacao'] = 'Aprovado'
else:
aluno['situacao'] = 'Reprovado'
for chave, valor in [Link]():
print(f'- {chave} é igual a {valor}')

O que este código faz?


Introdução aos Dicionários (dict). Em vez de usar índices numéricos como as listas, os
dicionários usam 'chaves' (strings) como 'nome' ou 'media', permitindo dar significado
aos dados guardados.

35. Cadastro de Trabalhador em Dicionário

Código Fonte:

dados = dict()
dados['nome'] = str(input('Nome: '))
dados['ctps'] = int(input('Carteira de Trabalho (0 não tem): '))
if dados['ctps'] != 0:
dados['contratacao'] = int(input('Ano de Contratação: '))
dados['salario'] = float(input('Salário: R$'))
print('-=' * 15)
for k, v in [Link]():
print(f' - {k} tem o valor {v}')

O que este código faz?


Mostra como um dicionário é dinâmico. As chaves de contratação e salário só são
criadas se a pessoa tiver carteira de trabalho (CTPS != 0).
36. Função que Calcula Área

Código Fonte:

def area(larg, comp):


a = larg * comp
print(f'A área de um terreno {larg}x{comp} é de {a}m².')

print('Controle de Terrenos')
l = float(input('LARGURA (m): '))
c = float(input('COMPRIMENTO (m): '))
area(l, c)

O que este código faz?


Criação de funções (def). Em vez de escrever todo o código matematico solto, isolamos
a lógica em uma função 'area' que recebe parâmetros, tornando o código reutilizável.

37. Função com Parâmetros Dinâmicos

Código Fonte:

def maior(* num):


cont = maior_valor = 0
for valor in num:
if cont == 0 or valor > maior_valor:
maior_valor = valor
cont += 1
print(f'Foram informados {cont} valores e o maior foi
{maior_valor}.')

maior(2, 9, 4, 7, 1)
maior(4, 7, 0)

O que este código faz?


O asterisco '*' antes do parâmetro empacota múltiplos argumentos passados em uma
tupla. Isso permite chamar a função com quantos números quisermos (como o print
faz).
38. Função com Retorno (Return)

Código Fonte:

def somar(a=0, b=0, c=0):


s = a + b + c
return s

r1 = somar(3, 2, 5)
r2 = somar(2, 2)
print(f'Meus cálculos deram {r1} e {r2}.')

O que este código faz?


O 'return' faz a função devolver um valor para o programa principal em vez de
imprimi-lo diretamente. Note também que os parâmetros 'a=0' tornam os argumentos
opcionais.

39. Função Analisando e Gerando Dicionários

Código Fonte:

def notas(*n):
r = dict()
r['total'] = len(n)
r['maior'] = max(n)
r['menor'] = min(n)
r['media'] = sum(n) / len(n)
return r

resp = notas(5.5, 2.5, 1.5)


print(resp)

O que este código faz?


Uma função avançada que recebe uma quantidade indefinida de notas, usa funções
embutidas (max, min, sum, len) para processá-las, armazena num dicionário e o
devolve pronto.
40. Sistema de Cores no Terminal

Código Fonte:

def escreva_colorido(msg, cor_codigo):


print(f'\033[{cor_codigo}m{msg}\033[m')

texto = input('Digite uma mensagem: ')


escreva_colorido(texto, '31') # 31 é vermelho
escreva_colorido(texto, '32') # 32 é verde
escreva_colorido(texto, '34') # 34 é azul

O que este código faz?


Usa códigos ANSI para formatar a saída de texto. É uma ótima maneira de fechar a
lista e ensinar aos alunos como dar 'vida' visual aos seus programas no console.

Você também pode gostar