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

درس 5. While cycle

الصعوبة:

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

مسألة«تراكم الأموال للشراء»

💻 Python

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

يجب على البرنامج قراءة الأسطر واحدًا تلو الآخر حتى يُدخل المستخدم   0 . لكل سطر مُدخل، من الضروري التحقق: هل هو تاريخ صحيح وموجود بالتنسيق   dd.mm.YYYY .

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

يتلقى البرنامج عدة أسطر كمدخلات. يحتوي كل سطر إما على تاريخ للتحقق أو مجموعة عشوائية من الأحرف. ينتهي إدخال البيانات عند إدخال رمز & nbsp; 0 في سطر منفصل.

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

لكل سطر يتم إدخاله (باستثناء السطر الأخير   0 )، يجب أن يعرض البرنامج في سطر جديد:

  • التاريخ الصحيح   — إذا كان السطر يمثل تاريخًا موجودًا بالتنسيق   DD.MM.YYYY . في جميع الحالات الأخرى (تنسيق غير صحيح، تاريخ غير موجود).

مثال

إدخال

12.12.2024
31.04.2023
02.29.2023
Hello World
02.29.2024
01/01/2000
0

إخراج

التاريخ الصحيح
تاريخ أو تنسيق غير صحيح
تاريخ أو تنسيق غير صحيح
تاريخ أو تنسيق غير صحيح
التاريخ الصحيح
التاريخ الصحيح

تلميح

There will be no clue here, decide for yourself!

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
import datetime

while True:
    # Считываем очередную строку от пользователя
    input_str = input()

    # Проверяем условие выхода из цикла
    if input_str == '0':
        break

    try:
        # Пытаемся преобразовать строку в дату по заданному формату.
        # Формат '%d.%m.%Y' означает:
        # %d - день месяца с ведущим нулем (01-31)
        # %m - месяц с ведущим нулем (01-12)
        # %Y - год в виде четырех цифр (например, 2024)
        #
        # Эта функция автоматически проверяет и формат, и существование даты.
        # Например, для "30.02.2024" она вызовет ошибку, так как такой даты нет.
        datetime.datetime.strptime(input_str, '%d.%m.%Y')
        
        # Если преобразование прошло успешно, значит дата корректна
        print("Корректная дата")

    except ValueError:
        # Если в процессе преобразования возникла ошибка ValueError,
        # это означает, что либо формат строки не соответствует 'ДД.ММ.ГГГГ',
        # либо сама дата невозможна (например, 31 апреля).
        print("Некорректная дата или формат")

🎉 تهانينا! 🎉

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

AD

إعلان

red-snake blue-snake green-snake

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

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

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