1
resposta

[Solução] Verificando a paridade de um numero

def pega_int(pergunta: str, opcoes: list[int] = []) -> int:
    """
    Solicita uma entrada do usuário, garantindo que seja um número inteiro
    e, opcionalmente, que esteja dentro de uma lista de opções válidas.

    Args:
        pergunta: A mensagem (prompt) a ser exibida ao usuário.
        opcoes: Uma lista de inteiros válidos. Se a lista estiver vazia
            (padrão), qualquer inteiro é aceito.

    Returns:
        O número inteiro digitado pelo usuário.

    Raises:
        ValueError: Se a entrada não puder ser convertida para int.
        ValueError: Se o inteiro digitado não estiver na lista de opções válidas.
    """

    resposta: int = 0
    
    try:
        resposta = int(input(pergunta))
    except ValueError:
        raise ValueError('Entrada inválida!')
    
    if opcoes == []:
        return resposta
    
    if resposta in opcoes:
        return resposta
    raise ValueError('Opção inválida!')

def e_par(numero: int) -> bool:
    """
    Verifica se um número inteiro é par.

    A verificação é feita através do operador módulo (%), checando se o
    resto da divisão do número por 2 é igual a zero.

    Args:
        numero: O número inteiro a ser verificado.

    Returns:
        True: Se o número for par.
        False: Se o número for ímpar.
    """

    if numero % 2 == 0:
        return True

    return False

def main() -> None:
    """
    Função principal que solicita um número inteiro ao usuário e verifica
    se ele é par ou ímpar.

    A função utiliza a função `pega_int` para garantir que a entrada seja
    um número inteiro válido antes de realizar a verificação.
    """
    
    numero: int = 0

    while True:
        try:
            numero = pega_int('\nDigite um número inteiro: ')
            break
        except ValueError as e:
            print(e)
    
    if e_par(numero):
        print('O número é par!')
    else:
        print('O número é impar!')


if __name__ == '__main__':
    main()

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Mozert! Como vai?

Agradeço por compartilhar.

Gostei muito da sua solução. O uso das funções pega_int e e_par está bem estruturado e mostra uma boa compreensão sobre tratamento de erros e modularização de código. Você deixou o código limpo e fácil de entender, o que é ótimo para manutenção e reuso.

Continue praticando esse estilo claro e organizado. Uma dica: experimente usar o método strip() ao ler a entrada do usuário, assim você evita problemas com espaços extras na digitação.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!