Olá, Vivian, como vai?
Seu código está consistente e cumpre bem a proposta do exercício. A estrutura com try/except funciona de forma adequada para capturar entradas que não possam ser convertidas para inteiro, e a validação para valores negativos está clara e objetiva.
Um ponto que você pode considerar é ajustar a mensagem do except, já que o ValueError ocorre quando o valor informado não é um número inteiro, independentemente de ser positivo ou negativo. Isso não atrapalha o funcionamento, mas pode deixar a comunicação ainda mais precisa caso queira refinar.
Continue compartilhando suas soluções. O fórum está à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!