• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 2. Условия

Уровень сложности:

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

Задача«Супер секретное сообщение»

 Вы — элитный шпион, работающий на секретную организацию "Альфа". Вы перехватили сообщение противника, но оно зашифровано. Ваш связной передал вам правила, по которым создаются ключи для дешифровки. Чтобы ключ был принят системой, он должен соответствовать трём строгим критериям одновременно:

  1. Уникальность: Все символы в ключе должны быть уникальными. Например, key123 подходит, а hellow1 — нет, так как символ l повторяется.
  2. Наличие букв: В ключе должна быть хотя бы одна буква любого регистра (от a до z, от A до Z).
  3. Наличие цифр: В ключе должна быть хотя бы одна цифра (от 0 до 9).

Ваша миссия — написать программу, которая будет проверять предложенные строки и определять, являются ли они валидными ключами. Если строка соответствует всем трём правилам, система должна выдать сообщение "Доступ разрешен". В противном случае — "Доступ запрещен".

Формат ввода

Потенциальный ключ для проверки (строка, str).

Формат Вывода

Результат проверки ключа (строка, str): "Доступ разрешен" или "Доступ запрещен".

Пример

Ввод

agentCode9

Вывод

Доступ разрешен

Подсказка

Тут подсказки не будет, решай сам!

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, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!