Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Hora da prática: condicionais

import os
import platform

# --- Classe para cores no terminal (usando __slots__ para economizar memória) ---
class Cores:
    __slots__ = ()
    VERDE = "\033[92m"
    VERMELHO = "\033[91m"
    AMARELO = "\033[93m"
    AZUL = "\033[94m"
    CIANO = "\033[96m"
    RESET = "\033[0m"
    NEGRITO = "\033[1m"


# --- Função para limpar a tela ---
def limpar_tela():
    os.system("cls" if platform.system() == "Windows" else "clear")


# --- Cabeçalho estilizado ---
def cabecalho(titulo):
    print(f"{Cores.CIANO}{Cores.NEGRITO}=== {titulo.upper()} ==={Cores.RESET}")


# --- Função auxiliar para ler números inteiros com validação ---
def ler_inteiro(msg, minimo=None, maximo=None):
    while True:
        try:
            valor = int(input(msg))
            if minimo is not None and valor < minimo:
                print(f"{Cores.VERMELHO}Valor mínimo é {minimo}!{Cores.RESET}")
                continue
            if maximo is not None and valor > maximo:
                print(f"{Cores.VERMELHO}Valor máximo é {maximo}!{Cores.RESET}")
                continue
            return valor
        except ValueError:
            print(f"{Cores.VERMELHO}Por favor, digite um número válido!{Cores.RESET}")


# --- Função auxiliar para ler números reais (float) ---
def ler_float(msg):
    while True:
        try:
            return float(input(msg))
        except ValueError:
            print(f"{Cores.VERMELHO}Por favor, digite um número válido!{Cores.RESET}")


# --- 1. Verificar par ou ímpar ---
def verificar_par_ou_impar():
    limpar_tela()
    cabecalho("Verificar Par ou Ímpar")
    num = ler_inteiro("Digite um número: ")
    print(f"{Cores.VERDE}{num} é {'par' if num % 2 == 0 else 'ímpar'}.{Cores.RESET}")
    num = None  # libera referência


# --- 2. Classificar idade ---
def classificar_idade():
    limpar_tela()
    cabecalho("Classificar Idade")
    idade = ler_inteiro("Digite sua idade: ", minimo=0)
    if idade <= 12:
        categoria = "Criança"
    elif idade <= 18:
        categoria = "Adolescente"
    else:
        categoria = "Adulto"
    print(f"{Cores.AZUL}Você é {categoria}.{Cores.RESET}")
    idade = categoria = None  # libera referências


# --- 3. Verificar login ---
def verificar_login():
    limpar_tela()
    cabecalho("Verificar Login")
    usuario_correto, senha_correta = "admin", "1234"

    usuario = input("Digite o nome de usuário: ")
    senha = input("Digite a senha: ")

    if usuario == usuario_correto and senha == senha_correta:
        print(f"{Cores.VERDE}Login bem-sucedido!{Cores.RESET}")
    else:
        print(f"{Cores.VERMELHO}Usuário ou senha incorretos.{Cores.RESET}")

    usuario = senha = None  # libera referências


# --- 4. Determinar quadrante ---
def determinar_quadrante():
    limpar_tela()
    cabecalho("Determinar Quadrante")
    x = ler_float("Digite a coordenada X: ")
    y = ler_float("Digite a coordenada Y: ")

    if x > 0 and y > 0:
        quadrante = "Primeiro Quadrante"
    elif x < 0 and y > 0:
        quadrante = "Segundo Quadrante"
    elif x < 0 and y < 0:
        quadrante = "Terceiro Quadrante"
    elif x > 0 and y < 0:
        quadrante = "Quarto Quadrante"
    else:
        quadrante = "Eixo ou Origem"

    print(f"{Cores.AMARELO}O ponto está no {quadrante}.{Cores.RESET}")
    x = y = quadrante = None  # libera referências


# --- Menu principal ---
def menu():
    opcoes = {
        "1": ("Verificar se é par ou ímpar", verificar_par_ou_impar),
        "2": ("Classificar idade", classificar_idade),
        "3": ("Verificar login", verificar_login),
        "4": ("Determinar quadrante", determinar_quadrante),
        "0": ("Sair", None)
    }

    while True:
        limpar_tela()
        cabecalho("Menu Principal")
        for k, (desc, _) in opcoes.items():
            print(f"{Cores.AMARELO}{k}{Cores.RESET} - {desc}")

        escolha = input("\nEscolha uma opção: ").strip()
        if escolha == "0":
            print(f"{Cores.VERMELHO}Saindo...{Cores.RESET}")
            break
        elif escolha in opcoes:
            opcoes[escolha][1]()
            input(f"\n{Cores.AZUL}Pressione Enter para voltar ao menu...{Cores.RESET}")
        else:
            print(f"{Cores.VERMELHO}Opção inválida!{Cores.RESET}")
            input("Pressione Enter para tentar novamente...")

        escolha = None  # libera referência


# --- Execução ---
if __name__ == "__main__":
    menu()
1 resposta
solução!

E aí, Marinaldo! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Percebi que você praticou o uso de funções bem estruturadas, aplicou muito bem o conceito de modularização para organizar o código em blocos reutilizáveis e ainda entendeu a relevância de interações com o usuário via terminal para tornar o programa mais dinâmico e acessível.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!