Resolvi a questão 6 usando booleanos porque queria uma solução que não tivesse tantas linhas com else: print('Data inválida'). Tenho uma dúvida sobre booleanos: Sempre que eu defino um booleano com False, preciso definir o booleno True?
Poderiam, por favor, conferir minha solução?
#Colete um dia, um mês e um ano:
dia = int(input("Insira aqui um dia: "))
mes = int(input("Insira aqui um mês: "))
ano = int(input("Insira aqui um ano: "))
mes_31_dias = [1,3,5,7,8,10,12]
mes_30_dias = [4,6,9,11]
data_valida = False
#Análise de fevereiro
ano_bissexto = False
if ano%4 == 0:
ano_bissexto = True #Definimos um booleano para se o ano for bissexto
if mes == 2:
if ano_bissexto:
if 0 < dia <= 29:
data_valida = True #Caso esteja no intervalo da condição a data é válida, se não estiver a data é inválida
else:
if 0 < dia <= 28:
data_valida = True
#Análise dos outros meses
elif mes in mes_31_dias:
if 0 < dia <= 31:
data_valida = True
elif mes in mes_30_dias:
if 0 < dia <= 30 :
data_valida = True
else:
data_valida = False
if data_valida:
print("Data válida")
else:
print("Data inválida")