💻 Tuto 13 : Dictionnaires – Ranger les Infos ✨

Salut, jeune nomade ! Organise tes données comme un bibliothécaire cyber avec Python ! 🚀

Les dictionnaires, c’est quoi ?

Yo, prêt à devenir un maître de l’organisation cyber ? Dans Tuto 12, t’as appris à manipuler des chaînes comme un scribe. Maintenant, on va découvrir les dictionnaires, des structures qui stockent des données en paires clé-valeur, comme un livre magique où chaque mot (clé) a une définition (valeur). Chaque dictionnaire a une âme ordonnée qui garde tes infos bien rangées ! 📚

Pour un hacker éthique, les dictionnaires sont puissants : ils organisent des données complexes, comme associer des ports à des services dans un scan Nmap. Mais on reste responsable : on code pour apprendre, pas pour causer des problèmes !

Astuce Éthique : Tes dictionnaires sont comme des archives NarcoShield. Remplis-les de données utiles, pas de chaos !

Comment marchent les dictionnaires ?

Un dictionnaire est créé avec des accolades {}, contenant des paires clé: valeur. Tu peux accéder à une valeur via sa clé, modifier, ajouter, ou supprimer des paires, et parcourir les clés ou valeurs avec une boucle (Tuto 7). Exemple :

scan = {"port80": "HTTP", "port443": "HTTPS"}
print(scan["port80"])  # Affiche "HTTP"
scan["port22"] = "SSH"  # Ajoute une paire
del scan["port443"]  # Supprime une paire
for key in scan:
    print(key, ":", scan[key])
            

Analogie : Un dictionnaire, c’est comme une bibliothèque cyber. Chaque livre (clé) a un contenu (valeur). Tu peux ouvrir un livre, en ajouter un, ou en retirer un. La boucle, c’est feuilleter chaque livre !

Hacking tie-in : Un hacker éthique utilise des dictionnaires pour stocker des résultats, comme associer des IPs à des services ou des ports à des états (ouvert/fermé).

De quoi t’as besoin ?

T’as tout prêt si t’as suivi les tutos précédents :

Si Python ou IDLE coince, check Tuto 1 pour l’installation. Demande à un adulte si besoin !

Astuce : Ouvre IDLE et prépare-toi à organiser ta bibliothèque cyber !

Créer un programme avec des dictionnaires, étape par étape

Suis ces étapes pour coder un programme qui gère un dictionnaire de scan réseau. C’est comme cataloguer des données dans une bibliothèque cyber !

  1. Ouvre IDLE
    Lance IDLE et clique sur Fichier > Nouveau Fichier pour ouvrir une fenĂŞtre vide, ton nouveau rayonnage cyber.

    Astuce : Vérifie que t’es dans une nouvelle fenêtre, pas l’interpréteur “>>>”.

  2. Écris ton code
    Tape ce code dans la fenĂŞtre :
    def display_scan(scan_data):
        print("Résultats du scan :")
        for port in scan_data:
            print("Port", port, ":", scan_data[port])
    
    name = input("C’est quoi ton nom ? ")
    scan = {"80": "HTTP", "443": "HTTPS"}
    print("Salut,", name, "! Dictionnaire initial :", scan)
    new_port = input("Ajoute un port (ex. : 22) : ")
    new_service = input("Service pour ce port (ex. : SSH) : ")
    if new_port in scan:
        print("Ce port existe déjà !")
    else:
        scan[new_port] = new_service
        display_scan(scan)
                        
    Explication : input() (Tuto 5) demande un nom, un port, et un service. Le dictionnaire scan commence avec deux paires. Une fonction display_scan (Tuto 11) affiche les paires avec une boucle for (Tuto 7). Une if (Tuto 6) vérifie si le port existe avant d’ajouter.

    Astuce : Respecte les accolades {} pour le dictionnaire et l’indentation (4 espaces) après def et if !

  3. Sauvegarde ton programme
    Clique sur Fichier > Enregistrer. Nomme-le “dictionnaires.py” et sauve-le dans un dossier (ex. : “Mes Documents”). Note l’emplacement !

    Astuce : Choisis un nom simple sans espaces (ex. : “dictionnaires.py”).

  4. Lance ton programme
    Clique sur Exécuter > Exécuter le Module (ou F5). Une fenêtre s’ouvrira, demandant nom, port, et service. Essaye (ex. : “Jonathan”, “22”, “SSH”):
    C’est quoi ton nom ? Jonathan
    Salut, Jonathan ! Dictionnaire initial : {'80': 'HTTP', '443': 'HTTPS'}
    Ajoute un port (ex. : 22) : 22
    Service pour ce port (ex. : SSH) : SSH
    Résultats du scan :
    Port 80 : HTTP
    Port 443 : HTTPS
    Port 22 : SSH
                        
    Teste avec un port existant (ex. : “80”) ou d’autres services (ex. : “FTP”). Si ça marche, t’as organisé ta bibliothèque cyber ! Si non, passe à “Si ça coince”.

    Astuce : Teste plusieurs ports pour remplir ton dictionnaire !

  5. Joue avec ton code
    Change le dictionnaire initial (ex. : scan = {"21": "FTP"}) ou la fonction (ex. : ajoute print("Total :", len(scan_data))). Modifie la vérification (ex. : ajouter si new_service == ""). Supprime une paire (ex. : del scan["80"]). Relance (F5) pour tester. Amuse-toi !

    Astuce : Essaye des services fun, comme “Telnet” !

Pourquoi c’est important pour le hacking ?

Les dictionnaires sont les archives de tes programmes cyber :

Hacking tie-in : Un hacker éthique utilise des dictionnaires pour gérer des résultats de Nmap, comme associer des ports à des états ou des IPs à des hôtes.

Si ça coince : que faire ?

Pas de panique, nomade, les dictionnaires peuvent être un peu désordonnés ! Voici des astuces :

🎯 Mission 13 : Catalogue ta bibliothèque cyber !

Suis les étapes pour créer un programme qui gère un dictionnaire de scan avec ajout et affichage. Ouvre un fichier texte (Bloc-notes ou autre, pas Python). Crée un fichier nommé “code13.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 [le résultat du dictionnaire].” Exemple : “J’ai codé un programme qui demande nom, port, service et affiche Résultats du scan : Port 80 : HTTP Port 443 : HTTPS Port 22 : SSH.” C’est ton treizième trophée de nomade !

Astuce Éthique : Choisis des ports et services respectueux pour ton catalogue !

PrĂŞt pour la suite ?

Bravo, t’es un bibliothécaire cyber des dictionnaires ! T’as appris à organiser des données comme un pro. Dans le Tuto 14, on va explorer les sets pour gérer des collections uniques. Ouvre IDLE, jeune nomade, et continue à coder comme un hacker éthique ! 💖