• 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«Mensagem super secreta»

💻 Python

& nbsp; Você & mdash; um espião de elite que trabalha para a organização secreta Alpha. Você interceptou a mensagem do inimigo, mas ela está criptografada. Seu contato lhe entregou as regras pelas quais as chaves para descriptografia são criadas. Para que a chave seja aceita pelo sistema, ela deve corresponder a três critérios rigorosos ao mesmo tempo:

  1. Unicidade: & nbsp; todos os símbolos da chave devem ser únicos. Por exemplo, & nbsp; key123 & nbsp; é adequado, enquanto & nbsp; Hellow1 & nbsp; & mdash; não, pois o símbolo & nbsp; l & nbsp; se repete.
  2. Presença de letras: & nbsp; deve haver pelo menos uma letra de qualquer registro na chave (de & nbsp; a & nbsp; a & nbsp; z , de & nbsp; A & nbsp; a & nbsp; Z ).
  3. Presença de números: & nbsp; deve haver pelo menos um dígito na chave (de & nbsp; 0 & nbsp; a & nbsp; 9 ).

& mdash; Escreva um programa que verificará as linhas propostas e determinará se elas são chaves válidas. Se a linha atender a todas as três regras, o sistema deve emitir a mensagem "Acesso permitido". Caso contrário & mdash; "Acesso negado".

Formato de entrada

Uma chave potencial para verificação (linha, str).

Formato de saída

O resultado da verificação da chave (linha, str): "acesso permitido" ou "acesso proibido".

Exemplo

Entrada

agentcode9

Saída

Acesso é permitido

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
# Получаем строку от пользователя, которая является потенциальным ключом.
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("Доступ запрещен")

🎉 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!