• 1
    إدخال وإخراج البيانات
    • المهام
  • 2
    الشروط
    • المهام
  • 3
    حلقة for
    • المهام
  • 4
    السلاسل النصية
    • المهام
  • 5
    حلقة while
    • المهام
  • 6
    القوائم
    • المهام
  • 7
    مصفوفات ثنائية الأبعاد
    • المهام
  • 8
    القواميس
    • المهام
  • 9
    المجموعات
    • المهام
  • 10
    الدوال والتكرار
    • المهام
  • к

درس 2. Conditions

الصعوبة:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

مسألة«حماية القلعة»

💻 Python

تخيل أنك تقوم بإنشاء تطبيق تقويم بسيط. واحدة من أهم وظائف هذا التطبيق — هي منع المستخدم من إدخال تواريخ غير موجودة. على سبيل المثال، 30 فبراير أو 31 أبريل.

rn

اكتب برنامجًا يطلب من المستخدم إدخال ثلاثة أرقام: اليوم والشهر والسنة. مهمتك — هي التحقق مما إذا كان التاريخ المُدخل حقيقيًا. يجب أن يأخذ البرنامج في الاعتبار أن الأشهر المختلفة تحتوي على أعداد مختلفة من الأيام، وكذلك وجود السنوات الكبيسة التي يكون فيها فبراير 29 يومًا.

rn

قواعد التحقق:

rn
    rn
  1. الأشهر التي تحتوي على 31 يومًا: يناير (1)، مارس (3)، مايو (5)، يوليو (7)، أغسطس (8)، أكتوبر (10)، ديسمبر (12).
  2. rn
  3. الأشهر التي تحتوي على 30 يومًا: أبريل (4)، يونيو (6)، سبتمبر (9)، نوفمبر (11).
  4. rn
  5. فبراير (2) يحتوي على 28 يومًا في السنة العادية و29 يومًا في السنة الكبيسة.
  6. rn
  7. السنة تكون كبيسة إذا كانت تقبل القسمة على 4، ولكن لا تقبل القسمة على 100، أو إذا كانت تقبل القسمة على 400.
  8. rn
rn

يجب أن يعرض البرنامج "تاريخ صحيح" إذا كان التاريخ موجودًا، و"تاريخ غير صحيح" بخلاف ذلك.

تنسيق الإدخال

اليوم (عدد صحيح)
الشهر (عدد صحيح)
السنة (عدد صحيح)

تنسيق الإخراج

نتيجة الفحص (السطر)

مثال

إدخال

29
2
2024

إخراج

التاريخ الصحيح

تلميح

There will be no clue here, decide for yourself!

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
# Запрашиваем у пользователя три числа: день, месяц, год
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("Корректная дата")

🎉 تهانينا! 🎉

لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.

AD

إعلان

red-snake blue-snake green-snake

جارٍ تشغيل الكود...

مساعد الذكاء الاصطناعي

مرحباً! أنا مساعدك في البرمجة. اسألني أي شيء عن Python — يمكنني شرح الدوال والطرق ومساعدتك في المهمة الحالية!