• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 2. Conditions

Dificuldade:

Tarefa«Proteção de fortaleza»

💻 Python

Imagine que você está criando um aplicativo de calendário simples. Uma das funções mais importantes de tal aplicativo — Não permitir que o usuário insira datas inexistentes. Por exemplo, 30 de fevereiro ou 31 de abril.

rn

Escreva um programa que peça ao usuário para inserir três números: dia, mês e ano. Sua tarefa — Verificar se a data inserida é real. O programa deve levar em consideração que em diferentes meses há diferentes números de dias, bem como que existem anos bissextos em que fevereiro tem 29 dias.

rn

Regras para a verificação:

rn
    rn
  1. Meses com 31 dias: Janeiro (1), Março (3), Maio (5), Julho (7), Agosto (8), Outubro (10), Dezembro (12).
  2. rn
  3. Meses com 30 dias: Abril (4), Junho (6), Setembro (9), Novembro (11).
  4. rn
  5. Fevereiro (2) tem 28 dias no ano normal e 29 dias no ano bissexto.
  6. rn
  7. O ano é bissexto se for divisível por 4, mas não por 100, ou se for divisível por 400.
  8. rn
rn

O programa deve exibir "data correta" se a data existir, e "data incorreta" caso contrário.

Formato de entrada

Dia (número inteiro)
Mês (número inteiro)
Ano (número inteiro)

Formato de saída

O resultado da verificação (linha)

Exemplo

Entrada

29
2
2024

Saída

A data correta

Dica

There will be no clue here, decide for yourself!

main.py
Teste 1
Teste 2
Teste 3
Teste 4
Teste 5
Teste 6
Teste 7
Teste 8
Teste 9
Teste 10
Solução do desenvolvedor
# Запрашиваем у пользователя три числа: день, месяц, год
day = int(input())
month = int(input())
year = int(input())

# Проверяем базовую корректность введенных данных
if month < 1 or month > 12:
    print("Некорректная дата")
else:
    # Проверяем корректность дня для каждого месяца
    
    # Месяцы с 31 днем: январь(1), март(3), май(5), июль(7), август(8), октябрь(10), декабрь(12)
    if month in [1, 3, 5, 7, 8, 10, 12]:
        if day < 1 or day > 31:
            print("Некорректная дата")
        else:
            print("Корректная дата")
    
    # Месяцы с 30 днями: апрель(4), июнь(6), сентябрь(9), ноябрь(11)
    elif month in [4, 6, 9, 11]:
        if day < 1 or day > 30:
            print("Некорректная дата")
        else:
            print("Корректная дата")
    
    # Февраль (2) - особый случай
    elif month == 2:
        # Проверяем, является ли год високосным
        is_leap_year = False
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            is_leap_year = True
        
        # Проверяем корректность дня для февраля
        if is_leap_year:
            # Високосный год - до 29 дней
            if day < 1 or day > 29:
                print("Некорректная дата")
            else:
                print("Корректная дата")
        else:
            # Обычный год - до 28 дней
            if day < 1 or day > 28:
                print("Некорректная дата")
            else:
                print("Корректная дата")

🎉 Parabéns! 🎉

Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.

AD

Publicidade

red-snake blue-snake green-snake

Executando seu código...

Assistente de IA

Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!