Oi, Marcelo! Como vai?
Gostei bastante da forma como você organizou a função com def par(numero), separando a lógica da verificação do fluxo principal do programa. O uso do try e do except ValueError também foi uma ótima escolha, pois garante que o código lide bem com situações em que o usuário digita algo diferente de um número inteiro, tornando o programa mais robusto e confiável.
Uma dica interessante para evoluir ainda mais é simplificar a função utilizando return diretamente com a expressão booleana, sem a necessidade do bloco if/else. Veja este exemplo:
def par(numero):
return numero % 2 == 0
numero = int(input("Digite um numero inteiro: "))
print(par(numero))
Nessa versão, o return devolve diretamente True ou False com base na verificação de paridade, deixando a função mais enxuta e fácil de ler. Quando a expressão numero % 2 == 0 já é uma condição booleana, não é necessário envolvê-la em um if/else para retornar True ou False separadamente.
Perceba que o print nesse exemplo exibirá diretamente o resultado booleano. Se preferir manter as mensagens "O número é par" ou "O número é ímpar", sua versão original com o bloco if/else fora da função é a abordagem mais adequada para isso.
Continue assim, pois cada projeto concluído é um passo importante na sua evolução como programador.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
Você já experimentou adaptar essa função para verificar outros tipos de paridade, como identificar se um número é múltiplo de 3 ou de 5? O que acha de tentar isso como próximo desafio?