• 1
    Entrée et sortie
    • Tâches
  • 2
    Conditions
    • Tâches
  • 3
    Boucle for
    • Tâches
  • 4
    Chaînes
    • Tâches
  • 5
    Boucle while
    • Tâches
  • 6
    Listes
    • Tâches
  • 7
    Tableaux 2D
    • Tâches
  • 8
    Dictionnaires
    • Tâches
  • 9
    Ensembles
    • Tâches
  • 10
    Fonctions et récursion
    • Tâches
  • к

Leçon 5. While cycle

Difficulté :

Exercice«Vérifier le palindrome»

💻 Python

Vous êtes un spécialiste en cybersécurité, et votre objectif est de vous connecter au serveur secret "Centaur". Le protocole de connexion est inhabituel : le serveur vous envoie une ligne d'appel, et vous devez immédiatement envoyer en réponse le mot de passe correct. Si la réponse est incorrecte, la connexion est immédiatement interrompue.

La règle de réponse est la suivante : il faut extraire tous les chiffres et toutes les lettres latines de la ligne, en ignorant les autres caractères. Ensuite, vous devez créer une nouvelle ligne, où se trouvent tous les chiffres extraits (en conservant leur ordre initial), puis toutes les lettres extraites (en conservant également leur ordre).

Votre programme doit lire les lignes d'appel jusqu'à ce qu'il reçoive la commande session_end. Il n'est pas nécessaire de répondre à cette commande, le programme doit simplement terminer son exécution.

Format d entrée

L'entrée est fournie sous forme de séquence de lignes, chacune sur une nouvelle ligne. Chaque ligne — est un appel provenant du serveur. La dernière ligne sera toujours   session_end.

Format de sortie

Pour chaque ligne-Zavzov (sauf pour   session_end ), il est nécessaire de supprimer le mot de passe généré sur une ligne séparée.

Exemple

Entrée

alpha123bravo
indicatif d'appel : 9-x-ray-8
--20-Victor-24--
Fin_de_session

Sortie

123LPHABRAVO
98Callsignxray
2024victor

Indice

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Solution du développeur
# Бесконечный цикл, который будет прерван изнутри
while True:
    # Читаем очередную строку-вызов от сервера
    challenge_string = input()

    # Проверяем условие выхода из цикла
    if challenge_string == "SESSION_END":
        break  # Завершаем цикл и программу

    # Создаем две пустые строки для сбора цифр и букв
    digits_part = ""
    letters_part = ""

    # Перебираем каждый символ в полученной строке-вызове
    for char in challenge_string:
        # Если символ является цифрой, добавляем его в строку для цифр
        if char.isdigit():
            digits_part += char
        # Иначе, если символ является буквой, добавляем его в строку для букв
        elif char.isalpha():
            letters_part += char
        # Все остальные символы (пробелы, знаки препинания и т.д.) игнорируются

    # Соединяем две части, чтобы получить финальный пароль-отклик
    response_password = digits_part + letters_part

    # Выводим результат
    print(response_password)

🎉 Félicitations ! 🎉

Tu as brillamment résolu la tâche ! C était difficile, mais tu as trouvé la bonne solution. Tu es encore plus proche de maîtriser la programmation ! Continue ainsi.

AD

Publicité

red-snake blue-snake green-snake

Exécution de votre code...

Assistant IA

Bonjour ! Je suis ton assistant de programmation. Pose moi toutes tes questions sur Python — je peux t expliquer les fonctions, les méthodes et t aider avec la tâche en cours !