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

Verificando paridade de número

import os

def pausa():
    input("Pressione ENTER para continuar...")

def clear():
    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")

while True:
    clear()
    try:
        numero = int(input("Digite um número: "))
    except ValueError:
        print("Opção inválida.")
        pausa()
        continue

    if numero % 2 == 0:
        print("O número é par.\n")
        
    else:
        print("O número é ímpar.\n")

    op = input("Continuar S/N: ")

    if op.lower() != "s":
        print("Saindo do programa...")
        break
        
1 resposta
solução!

Olá, Vinicius. Como vai?

Excelente código! Novamente você demonstra uma preocupação muito bacana com a experiência do usuário (UX) no terminal. Criar funções para limpar a tela (clear) adaptadas para diferentes sistemas operacionais (nt para Windows e o else para Linux/macOS) e para pausar a execução é uma prática muito profissional.

A lógica para verificar a paridade utilizando o operador de módulo % está totalmente correta. A expressão numero % 2 == 0 é a forma mais eficiente e padrão para descobrir se um número é par em Python, pois ela checa se o resto da divisão por 2 é igual a zero.

Para complementar o seu aprendizado e trazer novas perspectivas, separei algumas dicas de boas práticas e otimizações simples que podem deixar seu script ainda mais robusto:

1. Melhorando a validação da opção de continuar
No seu código atual, se o usuário digitar qualquer coisa diferente de "S" ou "s" (como "sim", "Sim" ou até uma letra errada sem querer), o programa fechará. Podemos melhorar a experiência do usuário aceitando variações ou criando uma validação interna para a resposta:

op = input("Deseja continuar? (S/N): ").strip().lower()
if op not in ['s', 'sim']:
    print("Saindo do programa...")
    break

2. Simplificando a estrutura do código
A lógica principal está ótima, mas podemos encapsular o fluxo principal dentro de uma função main(). Isso organiza o escopo do Python e evita que variáveis fiquem soltas no escopo global.

Veja como ficaria o código unindo essas boas práticas:

import os

def pausa():
    input("\nPressione ENTER para continuar...")

def clear():
    # Limpa a tela dependendo do sistema operacional
    os.system("cls" if os.name == "nt" else "clear")

def verifica_paridade():
    while True:
        clear()
        try:
            numero = int(input("Digite um número inteiro: "))
        except ValueError:
            print("Entrada inválida! Por favor, digite apenas números inteiros.")
            pausa()
            continue

        # Lógica de paridade
        if numero % 2 == 0:
            print(f"O número {numero} é PAR.")
        else:
            print(f"O número {numero} é ÍMPAR.")

        # Validação da saída
        opcao = input("\nContinuar? (S/N): ").strip().lower()
        if opcao not in ['s', 'sim']:
            print("Encerrando o programa. Até mais!")
            break

if __name__ == "__main__":
    verifica_paridade()

O que mudou aqui?

  • os.system(...) simplificado: Usamos uma estrutura condicional em uma única linha (operador ternário) para deixar a função clear() mais enxuta.
  • Uso do .strip(): Essa função remove espaços em branco acidentais que o usuário possa digitar antes ou depois da letra "S".
  • if __name__ == "__main__": Esta é uma convenção importante em Python. Ela garante que a função principal só seja executada se o arquivo for rodado diretamente, e não quando for importado por outro script.

Parabéns pelo capricho no projeto do terminal. Continue praticando!

Espero que possa ter lhe ajudado!