1
resposta

[Sugestão] UMA SOLUÇÃO PARA ANO BISSEXTO, APLICANDO AS 3 REGRAS, COM IF E BOOLEANOS

##############################################################

Programa para calcular se um ano é bissexto ou não.

Se um ano for divisível por 4, e não for divisível por 100, ele é bissexto

Se um ano for divisível por 4 e também for divisível por 100, considerar:

- Se ele não for divisível por 400, ele não é bissexto

- Se ele for também divisível por 400, ele é bissexto

Exemplos:

---> 2024: É divisível por 4 (2024 / 4 = 506), então é bissexto.

---> 2100: É divisível por 4 e por 100, mas não por 400, então não é bissexto.

---> 2000: É divisível por 4, por 100 e por 400, então é bissexto.

##################################################################

DivisivelPor4 = False
DivisivelPor100 = False
DivisivelPor400 = False
Ano = int(input("Digite o ano desejado: "))
if  (Ano % 4) == 0:
    DivisivelPor4 = True
if  (Ano % 100) == 0:
    DivisivelPor100 = True
if  (Ano % 400) == 0:
    DivisivelPor400 = True
if DivisivelPor4 == True and DivisivelPor100 == False :
    print("O ano " + str(Ano) + " é bissexto")
elif DivisivelPor4 == True and DivisivelPor100 == True and DivisivelPor400 == True :
    print("O ano " + str(Ano) + " é bissexto")
else:
    print("O ano " + str(Ano) + " não é bissexto")
1 resposta

Oi, Josue! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de como você aplicou de forma clara as três regras do ano bissexto usando variáveis booleanas para cada condição, o que deixa o raciocínio bem visível.

Se quiser testar, você pode simplificar a verificação usando apenas uma expressão lógica no if.


ano = int(input("Digite o ano desejado: "))

if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
    print(f"O ano {ano} e bissexto")
else:
    print(f"O ano {ano} nao e bissexto")

Este codigo reduz a quantidade de variaveis, mas mantem as regras aplicadas corretamente.

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