Olá, Estudante, tudo bem?
Seu código tem uma lógica interessante, mas há um detalhe importante na condição do if que pode trair você.
Quando você escreve:
if atividade1 and atividade2 and atividade3 > 0:
O Python não interpreta isso como "os três são maiores que zero". Ele avalia assim:
atividade1 sozinho: qualquer número diferente de zero é considerado Trueatividade2 sozinho: mesma coisaatividade3 > 0: aqui sim, a comparação acontece
Ou seja, se o usuário digitar 0 para a primeira atividade, a condição já falha (zero é False em Python), mas por um motivo errado. E se digitar -5 para atividade1, a condição passa (pois -5 é True), quando não deveria.
Para cada variável ser comparada corretamente, você precisa fazer a comparação explícita em cada uma:
if atividade1 > 0 and atividade2 > 0 and atividade3 > 0:
Tenta ajustar seu código com essa correção e veja se o comportamento fica como esperado. Qualquer dúvida, é só trazer aqui!
Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.
Bons estudos!
Sucesso ✨