Les listes en compréhension, c’est quoi ?
Yo, prêt à coder comme un ninja cyber ? Dans Tuto 18, t’as créé une aventure textuelle de ouf. Maintenant, on va découvrir les listes en compréhension, une façon super rapide de créer des listes (Tuto 9) en une seule ligne. Chaque compréhension est une formule alchimique qui donne une âme vive à ton code ! 🧪
Pour un hacker éthique, les listes en compréhension sont top : elles permettent de filtrer ou transformer des données vite, comme extraire des ports ouverts d’un scan Nmap. Mais on reste responsable : on code pour apprendre, pas pour causer des soucis !
Astuce Éthique : Tes compréhensions sont comme des potions NarcoShield. Utilise-les pour simplifier, pas pour nuire !
Comment marchent les listes en compréhension ?
Une liste en compréhension remplace une boucle for (Tuto 7) par une syntaxe compacte : [expression for item in iterable]. Tu peux ajouter une condition avec if. Exemple :
ports = [80, 443, 22, 8080]
open_ports = [port for port in ports if port < 1000]
print(open_ports) # Affiche [80, 443, 22]
squares = [x * x for x in range(1, 5)]
print(squares) # Affiche [1, 4, 9, 16]
Analogie : Une liste en compréhension, c’est comme une potion alchimique. Tu mélanges des ingrédients (données) avec une formule (expression) et un filtre (condition) pour créer une liste magique en un clin d’œil !
Hacking tie-in : Un hacker éthique utilise les compréhensions pour filtrer des données, comme garder les ports valides ou transformer des IPs pour un rapport.
De quoi t’as besoin ?
T’as tout prêt si t’as suivi les tutos précédents :
- Un ordinateur : Avec Python installé (python.org).
- IDLE : Ton atelier pour coder et tester.
- De la rapidité : Prêt à coder des listes en un éclair !
Si Python ou IDLE coince, check Tuto 1 pour l’installation. Demande à un adulte si besoin !
Astuce : Ouvre IDLE et prépare-toi à brasser des potions cyber !
Créer un programme avec des listes en compréhension, étape par étape
Suis ces étapes pour coder un programme qui utilise des listes en compréhension pour filtrer et transformer des ports scannés. C’est comme concocter une potion cyber pour trier des données !
-
Ouvre IDLE
Lance IDLE et clique sur Fichier > Nouveau Fichier pour ouvrir une fenêtre vide, ton nouveau labo d’alchimie cyber.
Astuce : Vérifie que t’es dans une nouvelle fenêtre, pas l’interpréteur “>>>”.
-
Écris ton code
Tape ce code dans la fenêtre :def process_ports(ports, name): valid_ports = [port for port in ports if 1 <= port <= 65535] port_strings = [f"Port {port}" for port in valid_ports] return f"{name}, ports valides : {port_strings}" name = input("C’est quoi ton nom ? ") try: port_input = input("Entre des ports séparés par des espaces (ex. : 80 443 99999) : ") ports = [int(p) for p in port_input.split()] # Compréhension pour convertir if not ports: print("Aucun port entré !") else: result = process_ports(ports, name) print(result) except ValueError: print("Erreur : entre des nombres valides pour les ports !")Explication :input()(Tuto 5) demande un nom et des ports. Une compréhension convertit l’entrée en liste de nombres avec.split()(Tuto 12). Untry/except(Tuto 17) gère les erreurs de conversion (ValueError). Une fonctionprocess_ports(Tuto 11) utilise deux compréhensions : une pour filtrer les ports valides (1-65535), une pour formater en chaînes. Uneif(Tuto 6) vérifie si la liste est vide.
Astuce : Respecte l’indentation (4 espaces) après
def,try,if, et les crochets[]pour les compréhensions ! -
Sauvegarde ton programme
Clique sur Fichier > Enregistrer. Nomme-le “compréhensions.py” et sauve-le dans un dossier (ex. : “Mes Documents”). Note l’emplacement !
Astuce : Choisis un nom simple sans espaces (ex. : “compréhensions.py”).
-
Lance ton programme
Clique sur Exécuter > Exécuter le Module (ou F5). Une fenêtre s’ouvrira, demandant nom et ports. Essaye (ex. : “Jonathan”, “80 443 99999”):C’est quoi ton nom ? Jonathan Entre des ports séparés par des espaces (ex. : 80 443 99999) : 80 443 99999 Jonathan, ports valides : ['Port 80', 'Port 443']Teste avec une entrée invalide (ex. : “abc”), vide, ou sans ports. Si ça marche, t’as créé une potion cyber ! Si non, passe à “Si ça coince”.
Astuce : Teste plusieurs combinaisons de ports pour voir le filtrage !
-
Joue avec ton code
Change la condition de filtrage (ex. :port < 100) ou le formatage (ex. :f"P:{port}"). Modifie la fonction (ex. : ajouter une compréhension pour les carrés des ports). Ajoute une vérification (ex. :if len(port_input) < 1). Relance (F5) pour tester. Amuse-toi !
Astuce : Essaye des ports fun, comme 1337 ou 8080 !
Pourquoi c’est important pour le hacking ?
Les listes en compréhension rendent tes programmes rapides et élégants :
- Filtrer : Extrait des données utiles, comme les ports valides d’un scan.
- Transformer : Reformate des données, comme des IPs en chaînes pour un rapport.
- Construire : Les compréhensions sont la base pour des scripts efficaces, comme des analyseurs.
Hacking tie-in : Un hacker éthique utilise les compréhensions pour traiter des résultats de Nmap, comme filtrer les ports ouverts ou formater des logs.
Si ça coince : que faire ?
Pas de panique, nomade, les potions alchimiques peuvent foirer ! Voici des astuces :
- Erreur “ValueError” ? : Vérifie que
try/exceptgère les entrées non numériques dans la compréhension[int(p) for p in port_input.split()]. - Rien ne s’affiche ? : Vérifie que la fonction est appelée (
process_ports) et que l’indentation est correcte (4 espaces aprèsdef,try,if). Relance avec F5. - Liste vide ? : Assure-toi que
port_input.split()produit des éléments et que la condition de filtrage n’élimine pas tout (ex. :1 <= port <= 65535). - Perdu ? : Relis lentement ou pose une question à Bot-Y. Il est ton guide cyber !
🎯 Mission 19 : Brasse une potion cyber !
Suis les étapes pour créer un programme qui utilise des listes en compréhension pour traiter des ports. Ouvre un fichier texte (Bloc-notes ou autre, pas Python). Crée un fichier nommé “code19.txt” dans le dossier “CyberForge” (dans toutpartdela/programmation/, créé dans Tuto 1). Écris dedans : “J’ai codé un programme qui demande [tes questions] et affiche [un exemple de résultat].” Exemple : “J’ai codé un programme qui demande nom et ports et affiche Jonathan, ports valides : ['Port 80', 'Port 443'].” C’est ton dix-neuvième trophée de nomade !
Astuce Éthique : Choisis des messages respectueux pour ta potion cyber !
Prêt pour la suite ?
Bravo, t’es un alchimiste cyber des listes en compréhension ! T’as appris à coder des listes vite et bien. Dans le Tuto 20, on va explorer les fonctions avancées pour rendre tes sorts encore plus puissants. Ouvre IDLE, jeune nomade, et continue à coder comme un hacker éthique ! 💖