# EXERCÍCIOS DE PYTHON: FUNÇÕES E LÓGICA
# Tente completar a lógica de cada função abaixo.
# 1. Crie uma função que receba um número e diga se ele é positivo ou negativo.
# 2. Crie uma função que receba a idade e diga se é "Maior de idade" ou "Menor de idade".
# 3. Crie uma função que receba dois números e retorne o maior deles.
# 4. Crie uma função que verifique se um número é múltiplo de 5.
# 5. Crie uma função que receba uma nota (0 a 10) e diga se o aluno foi "Aprovado" (>=7).
# 6. Crie uma função que converta metros para centímetros.
# 7. Crie uma função que calcule a área de um quadrado (lado * lado).
# 8. Crie uma função que verifique se uma senha digitada é igual a "1234".
# 9. Crie uma função que receba um nome e imprima "Olá [nome]".
# 10. Crie uma função que receba um número e retorne o dobro dele.
# 11. Verifique se um número é zero, positivo ou negativo.
# 12. Receba três notas e calcule a média simples.
# 13. Verifique se um ano é bissexto (divisível por 4).
# 14. Converta Celsius para Fahrenheit: (C * 9/5) + 32.
# 15. Verifique se um número está no intervalo entre 10 e 20.
# 16. Calcule o desconto de 10% sobre um preço.
# 17. Receba dois números e mostre a diferença (subtração) entre o maior e o menor.
# 18. Verifique se uma pessoa pode votar (idade >= 16).
# 19. Crie uma função que retorne o triplo de um número.
# 20. Verifique se um caractere digitado é vogal (a, e, i, o, u).
# 21. Calcule o IMC (peso / altura**2).
# 22. Verifique se um número é divisível por 3 e por 5 ao mesmo tempo.
# 23. Receba um número de 1 a 7 e diga o dia da semana (1-Dom, 2-Seg...).
# 24. Calcule o reajuste salarial de 5%.
# 25. Verifique se um triângulo é equilátero (todos os lados iguais).
# 26. Receba um número e mostre o seu sucessor e antecessor.
# 27. Verifique se um número é maior que 100.
# 28. Receba uma palavra e conte quantas letras ela tem (use len()).
# 29. Crie uma calculadora de soma que recebe dois parâmetros.
# 30. Verifique se um número é par, mas usando uma função que retorna True ou False.
# EXERCÍCIOS INTERMEDIÁRIOS: FUNÇÕES ESTRUTURADAS
# O objetivo aqui é praticar funções que processam dados antes de dar o resultado.
# 31. Simulador de Elevador: Receba o andar atual e o desejado. Valide se são entre 0 e 10.
# 32. Calculadora de Média com Recuperação: Se a média < 7, peça uma nota de exame.
# 33. Validador de Triângulo: Receba 3 lados e verifique se podem formar um triângulo.
# 34. Conversor de Moeda: Receba valor em Real e converta para Dólar ou Euro (escolha do usuário).
# 35. Classificador de Clima: Receba a temperatura e diga se está Congelando, Frio, Agradável ou
Quente.
# 36. Verificador de Login Robusto: Verifique usuário E senha, com mensagens específicas para cada
erro.
# 37. Cálculo de Rendimento: Receba valor inicial, taxa e meses para calcular juros simples.
# 38. Analisador de Texto: Receba uma frase e conte espaços, vogais e total de letras.
# 39. Simulador de Caixa Eletrônico: Receba valor de saque e diga quantas notas de 50 e 10
sobrariam.
# 40. Radar de Velocidade: Calcule multa se ultrapassar 80km/h (R$ 7,00 por km acima).
# 41. Conversor de Tempo: Receba segundos e transforme em Horas, Minutos e Segundos.
# 42. Gerador de E-mail: Receba nome e sobrenome e crie "[Link]@[Link]".
# 43. Calculadora de IMC Detalhada: Além do número, retorne a classificação (Abaixo do peso, Ideal,
etc).
# 44. Comparador de Preços: Receba o preço de dois produtos e diga qual o percentual de diferença
entre eles.
# 45. Verificador de Palíndromo: Verifique se uma palavra é igual de trás para frente.
# 46. Calculadora de Área de Cômodos: Receba largura e comprimento e diga quantos litros de tinta
(1L por 2m²).
# 47. Sistema de Notas Americano: Converta 0-10 para A, B, C, D ou F.
# 48. Contador de Números Específicos: Receba uma lista de 5 números e conte quantos são pares.
# 49. Gerador de Tabuada: Receba um número e imprima a tabuada completa formatada de 1 a 10.
# 50. Verificador de Vogais em Nome: Receba um nome e retorne apenas as vogais presentes nele.
# 51. Calculadora de Frete: Baseado na distância (até 100km = R$10, acima disso R$0.50 por km).
# 52. Verificador de Ano Bissexto Completo: Com validação se o ano é um número positivo.
# 53. Comparador de 3 números: Diga qual é o maior, o menor e se há números iguais.
# 54. Simulador de Notas de Aluno: Receba nota e frequência (precisa de nota > 7 e freq > 75%).
# 55. Inversor de Nomes: Receba "Nome Sobrenome" e retorne "Sobrenome, Nome".
# 56. Verificador de Senha Forte: Deve ter mais de 8 caracteres e conter o número '1'.
# 57. Calculadora de Desconto Progressivo: 1 produto (cheio), 2 (5%), 3 ou mais (10%).
# 58. Sorteador de Prêmios: Receba um número de 1 a 5 e diga se o usuário ganhou algo.
# 59. Conversor de Peso: Receba valor e unidade (Kg ou Libras) e converta para a outra.
# 60. Gerador de Menu: Função que imprime um menu e retorna a opção escolhida pelo usuário.
### GABARITO DOS EXERCÍCIOS ###
#1
def verificar_sinal(n):
if n >= 0: return "Positivo"
else: return "Negativo"
#2
def avaliar_maioridade(idade):
if idade >= 18: print("Maior de idade")
else: print("Menor de idade")
#3
def retornar_maior(a, b):
return max(a, b)
#4
def e_multiplo_de_5(n):
return n % 5 == 0
#5
def status_aluno(nota):
return "Aprovado" if nota >= 7 else "Reprovado"
#6
def m_para_cm(metros):
return metros * 100
#7
def area_quadrado(lado):
return lado * lado
#8
def login(senha):
if senha == "1234": return "Acesso Permitido"
else: return "Acesso Negado"
#9
def saudar(nome):
print(f"Olá {nome}")
# 10
def dobro(n):
return n * 2
# 11
def analisar_num(n):
if n == 0: return "Zero"
elif n > 0: return "Positivo"
else: return "Negativo"
# 12
def media(n1, n2, n3):
return (n1 + n2 + n3) / 3
# 13
def bissexto(ano):
return ano % 4 == 0
# 14
def converter_f(c):
return (c * 9/5) + 32
# 15
def no_intervalo(n):
return 10 <= n <= 20
# 16
def aplicar_desconto(preco):
return preco * 0.90
# 17
def diferenca(a, b):
return abs(a - b)
# 18
def pode_votar(idade):
return idade >= 16
# 19
def triplo(n):
return n * 3
# 20
def e_vogal(letra):
return [Link]() in 'aeiou'
# 21
def imc(peso, altura):
return peso / (altura ** 2)
# 22
def div_3_5(n):
return n % 3 == 0 and n % 5 == 0
# 23
def dia_semana(d):
dias = ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"]
return dias[d-1] if 1 <= d <= 7 else "Inválido"
# 24
def reajuste(salario):
return salario * 1.05
# 25
def e_equilatero(l1, l2, l3):
return l1 == l2 == l3
# 26
def vizinhos(n):
return n-1, n+1
# 27
def maior_que_100(n):
return n > 100
# 28
def tamanho_palavra(p):
return len(p)
# 29
def somar(a, b):
return a + b
# 30
def e_par(n):
return n % 2 == 0
# EXEMPLO DE COMO CHAMAR:
num_usuario = int(input("Digite um número para o teste final: "))
if e_par(num_usuario):
print("O número é par!")
else:
print("O número é ímpar!")
# 31. Simulador de Elevador
def elevador(atual, destino):
if not (0 <= atual <= 10 and 0 <= destino <= 10):
return "Erro: Andares devem ser entre 0 e 10."
if atual == destino:
return "Você já está no andar desejado."
direcao = "subindo" if destino > atual else "descendo"
return f"Elevador saindo do {atual}º e {direcao} para o {destino}º andar."
# 32. Média com Recuperação
def calcular_resultado(n1, n2):
media = (n1 + n2) / 2
if media >= 7:
return f"Média {media}: Aprovado!"
else:
exame = float(input(f"Média {media} insuficiente. Digite a nota do exame: "))
return "Aprovado no exame" if exame >= 5 else "Reprovado"
# 33. Validador de Triângulo
def e_triangulo(a, b, c):
if a < b + c and b < a + c and c < a + b:
return "Os lados formam um triângulo válido."
return "Lados inválidos para um triângulo."
# 34. Conversor de Moeda
def converter_moeda(valor_reais, destino):
if [Link]() == "DOLAR":
return f"US$ {valor_reais / 5.00:.2f}"
elif [Link]() == "EURO":
return f"€ {valor_reais / 5.50:.2f}"
else:
return "Moeda não suportada."
# 35. Classificador de Clima
def status_clima(temp):
if temp < 0: return "Congelando"
elif 0 <= temp <= 15: return "Frio"
elif 16 <= temp <= 25: return "Agradável"
else: return "Muito Quente"
# 36. Verificador de Login
def verificar_acesso(usuario, senha):
usuario_correto = "admin"
senha_correta = "1234"
if usuario != usuario_correto:
return "Usuário inexistente."
if senha != senha_correta:
return "Senha incorreta para o usuário admin."
return "Acesso concedido!"
# 37. Rendimento Simples
def calcular_rendimento(valor, taxa, meses):
juros = valor * (taxa / 100) * meses
total = valor + juros
return f"Rendimento: R${juros:.2f} | Total final: R${total:.2f}"
# 38. Analisador de Texto
def analisar_frase(frase):
espacos = [Link](" ")
total = len(frase)
vogais = sum(1 for letra in [Link]() if letra in "aeiou")
return f"Letras: {total}, Espaços: {espacos}, Vogais: {vogais}"
# 39. Caixa Eletrônico
def saque_caixa(valor):
if valor % 10 != 0:
return "Valor inválido! O caixa só possui notas de 50 e 10."
notas50 = valor // 50
resto = valor % 50
notas10 = resto // 10
return f"Saque autorizado: {notas50} notas de R$50 e {notas10} notas de R$10."
# 40. Radar de Velocidade
def calcular_multa(velocidade):
limite = 80
if velocidade <= limite:
return "Velocidade dentro do limite. Boa viagem!"
excesso = velocidade - limite
valor_multa = excesso * 7
return f"MULTADO! Velocidade: {velocidade}km/h. Valor da multa: R${valor_multa:.2f}"
# 41. Conversor de Tempo
def tempo_detalhado(total_seg):
horas = total_seg // 3600
minutos = (total_seg % 3600) // 60
segundos = total_seg % 60
return f"{horas}h : {minutos}m : {segundos}s"
# 42. Gerador de E-mail
def criar_email(nome, sobrenome):
email = f"{[Link]()}.{[Link]()}@[Link]"
return f"E-mail gerado com sucesso: {email}"
# 43. IMC Detalhado
def imc_completo(p, a):
valor = p / (a**2)
if valor < 18.5: classe = "Abaixo do peso"
elif 18.5 <= valor < 25: classe = "Peso normal"
elif 25 <= valor < 30: classe = "Sobrepeso"
else: classe = "Obesidade"
return f"IMC {valor:.1f} ({classe})"
# 44. Comparador de Preços
def comparar_produtos(p1, p2):
if p1 == p2: return "Os preços são iguais."
mais_caro = max(p1, p2)
mais_barato = min(p1, p2)
diff = ((mais_caro - mais_barato) / mais_barato) * 100
return f"O mais caro custa {diff:.1f}% a mais que o mais barato."
# 45. Verificador de Palíndromo
def e_palindromo(palavra):
palavra = [Link]().replace(" ", "")
if palavra == palavra[::-1]:
return "É um palíndromo!"
return "Não é um palíndromo."
# 46. Cálculo de Tinta
def calcular_tinta(larg, comp):
area = larg * comp
litros = area / 2
return f"Área: {area}m² | Necessário: {litros} litros de tinta."
# 47. Sistema Americano
def grade_usa(nota):
if 9 <= nota <= 10: return "Grade A"
elif 8 <= nota < 9: return "Grade B"
elif 7 <= nota < 8: return "Grade C"
elif 6 <= nota < 7: return "Grade D"
else: return "Grade F"
# 48. Contador de Pares em Lista
def contar_pares_lista(l1, l2, l3, l4, l5):
lista = [l1, l2, l3, l4, l5]
pares = sum(1 for n in lista if n % 2 == 0)
return f"A lista possui {pares} números pares."
# 49. Tabuada Formatada
def ver_tabuada(n):
resultado = f"TABUADA DO {n}\n"
for i in range(1, 11):
resultado += f"{n} x {i} = {n*i}\n"
return resultado
# 50. Vogais no Nome
def filtrar_vogais(nome):
encontradas = [letra for letra in nome if [Link]() in "aeiou"]
return f"Vogais encontradas no nome: {''.join(encontradas)}"
# 51. Calculadora de Frete
def frete_entrega(km):
if km <= 100:
valor = 10.00
else:
valor = 10.00 + (km - 100) * 0.50
return f"Custo do frete para {km}km: R${valor:.2f}"
# 52. Bissexto com Validação
def bissexto_seguro(ano):
if ano <= 0: return "Ano inválido."
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
return f"O ano {ano} é bissexto."
return f"O ano {ano} não é bissexto."
# 53. Comparador de Três
def analisar_tres(a, b, c):
maior = max(a, b, c)
menor = min(a, b, c)
msg = f"Maior: {maior}, Menor: {menor}."
if a == b == c: msg += " Todos são iguais."
return msg
# 54. Nota e Frequência
def resultado_academico(nota, freq):
if freq < 75: return "Reprovado por Falta."
if nota >= 7: return "Aprovado!"
return "Recuperação por Nota."
# 55. Inversor de Nome
def inverter_nome(nome_completo):
partes = nome_completo.split()
if len(partes) < 2: return nome_completo
return f"{partes[-1]}, {partes[0]}"
# 56. Senha Forte
def validar_senha(senha):
if len(senha) < 8: return "Fraca: menos de 8 caracteres."
if not any([Link]() for char in senha):
return "Fraca: não possui números."
return "Senha Forte e Segura."
# 57. Desconto Progressivo
def desconto_loja(qtd, preco_unit):
total = qtd * preco_unit
if qtd == 2: total *= 0.95
elif qtd >= 3: total *= 0.90
return f"Total para {qtd} itens: R${total:.2f}"
# 58. Sorteador
def sorteio(num):
import random
premiado = [Link](1, 5)
if num == premiado: return "PARABÉNS! Você ganhou o prêmio!"
return f"Não foi desta vez. O número era {premiado}."
# 59. Conversor Kg/Libras
def converter_peso(valor, unidade):
if [Link]() == "kg":
return f"{valor * 2.204:.2f} Libras"
else:
return f"{valor / 2.204:.2f} Kg"
# 60. Menu de Escolha
def menu_interativo():
print("--- MENU ---")
print("1. Salvar | 2. Deletar | 3. Sair")
op = input("Escolha: ")
if op == "1": return "Arquivo Salvo."
if op == "2": return "Arquivo Deletado."
if op == "3": return "Saindo do sistema..."
return "Comando inválido."