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

درس 2. Conditions

الصعوبة:

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

مسألة«الرسالة السرية»

💻 Python

  أنت — عميل نخبة يعمل لصالح المنظمة السرية "ألفا". لقد اعترضت رسالة العدو، لكنها مشفرة. سلمك مسؤول الاتصال القواعد التي يتم بموجبها إنشاء مفاتيح فك التشفير. لكي يتم قبول المفتاح من قبل النظام، يجب أن يستوفي ثلاثة معايير صارمة في نفس الوقت:

  1. التفرد:   يجب أن تكون جميع رموز المفتاح فريدة. على سبيل المثال،   key123   مناسب، بينما   Hellow1   — غير مناسب، لأن الرمز   l   يتكرر.
  2. وجود الحروف:   يجب أن يحتوي المفتاح على حرف واحد على الأقل من أي حالة (من   a   إلى   z ، ومن   A   إلى   Z ).
  3. وجود الأرقام:   يجب أن يحتوي المفتاح على رقم واحد على الأقل (من   0   إلى   9 ).

— اكتب برنامجًا يتحقق من الأسطر المقترحة ويحدد ما إذا كانت مفاتيح صالحة. إذا استوفى السطر القواعد الثلاث جميعها، يجب على النظام إصدار رسالة "تم قبول الوصول". وإلا — "تم رفض الوصول".

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

مفتاح محتمل للتحقق (سطر، سلسلة نصية).

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

نتيجة التحقق من المفتاح (سطر، نص): "الوصول مسموح" أو "الوصول ممنوع".

مثال

إدخال

agentcode9

إخراج

تم السماح بالوصول

تلميح

There will be no clue here, decide for yourself!

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
# Получаем строку от пользователя, которая является потенциальным ключом.
secret_key = input()

# Создаем флаги (логические переменные), чтобы отслеживать наличие букв и цифр.
# Изначально мы предполагаем, что их нет.
has_letter = False  # Флаг, который покажет, есть ли в строке буква.
has_digit = False   # Флаг, который покажет, есть ли в строке цифра.
has_rep = True # Флаг, который покажет был ли повтор символа
# Проверяем уникальность символов.
# Самый простой способ - сравнить длину исходной строки с длиной множества (set) из её символов.
# Множество автоматически удаляет все дубликаты.
# Если длины равны, значит, все символы были уникальны.
is_unique = len(secret_key) == len(set(secret_key))

# Запускаем цикл, который перебирает каждый символ в полученной строке.
for char in secret_key:
    # Проверяем, является ли текущий символ буквой.
    if char.isalpha():
        has_letter = True  # Если да, поднимаем флаг "есть буква".
    # Проверяем, является ли текущий символ цифрой.
    if char.isdigit():
        has_digit = True   # Если да, поднимаем флаг "есть цифра".
    if secret_key.count(char) > 1:
        has_rep = False
# После проверки всей строки, выносим окончательное решение.
# Условие сработает, только если все три переменных (is_unique, has_letter, has_digit) истинны (True).
if is_unique and has_letter and has_digit and has_rep:
    # Если все условия выполнены, выводим сообщение об успехе.
    print("Доступ разрешен")
else:
    # Если хотя бы одно условие не выполнено, выводим сообщение об отказе.
    print("Доступ запрещен")

🎉 تهانينا! 🎉

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

AD

إعلان

red-snake blue-snake green-snake

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

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

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