Mes débuts avec Python : deux petits projets pour pratiquer



Python est un langage que je trouve plus simple à lire que le C, surtout au début.

La syntaxe est plus courte et on peut rapidement écrire un petit programme qui fonctionne. C’est aussi pour cette raison que j’ai commencé à l’utiliser pour créer quelques projets liés à ce que j’apprends en informatique.

Par exemple, pour afficher un message :

print("Bonjour")

Il n’y a pas besoin de déclarer une fonction main() ou d’ajouter beaucoup de lignes pour commencer.

Les variables

Avec Python, on peut créer une variable directement :

nom = "Abdessamad"
age = 20
note = 14.5

Python comprend automatiquement le type de la variable.

C’est différent du C, où on doit écrire par exemple :

int age = 20;

Au début, cette différence m’a rendu Python plus facile à prendre en main.

Les conditions

Les conditions permettent de faire un choix selon une valeur.

Par exemple :

note = 14

if note >= 10:
    print("Module validé")
else:
    print("Module non validé")

Le principe est assez simple : Python vérifie la condition et exécute le bloc correspondant.

Je commence à utiliser beaucoup les conditions dans les petits projets que je développe actuellement.

Les boucles

Les boucles permettent de répéter une action.

Par exemple :

for i in range(5):
    print(i)

Python affiche :

0
1
2
3
4

Les boucles deviennent surtout intéressantes lorsqu’on doit traiter plusieurs éléments, comme une liste de mots de passe, plusieurs adresses IP ou plusieurs ports réseau.

C’est justement ce que j’essaie de faire dans mes projets actuels.

Premier projet : générer et vérifier des mots de passe

Le premier petit projet que je suis en train de créer concerne les mots de passe.

L’idée est d’avoir deux fonctions principales.

La première permet de générer automatiquement un mot de passe.

Par exemple :

Mot de passe généré :

K7@mP2!xQ9

Pour faire ça, Python peut utiliser plusieurs types de caractères :

lettres majuscules
lettres minuscules
chiffres
caractères spéciaux

Le programme peut ensuite choisir plusieurs caractères aléatoirement pour construire le mot de passe.

La deuxième partie sert à vérifier la force d’un mot de passe.

Par exemple, l’utilisateur entre :

bonjour123

et le programme vérifie plusieurs choses :

longueur suffisante
présence de majuscules
présence de minuscules
présence de chiffres
présence de caractères spéciaux

Le résultat pourrait être :

Mot de passe : bonjour123

Longueur : OK
Majuscule : NON
Chiffre : OK
Caractère spécial : NON

Résultat : mot de passe faible

Avec un mot de passe plus complet :

NetSec@2026!

le résultat pourrait être :

Longueur : OK
Majuscule : OK
Minuscule : OK
Chiffre : OK
Caractère spécial : OK

Résultat : mot de passe fort

Ce projet reste assez simple, mais il me permet de pratiquer plusieurs notions :

conditions
boucles
fonctions
chaînes de caractères
listes
génération aléatoire

Je trouve que c’est plus intéressant que de travailler uniquement avec des exercices comme additionner deux nombres.

Deuxième projet : analyser un réseau avec Python

Le deuxième projet est plus grand.

Comme ma formation est orientée réseaux et sécurité, je voulais essayer de relier Python à ce domaine.

Je suis donc en train de créer un petit outil capable d’analyser un réseau local.

L’idée générale est la suivante :

Réseau
   |
   v
Programme Python
   |
   v
Adresses IP
   |
   v
Ports ouverts
   |
   v
Informations sur les services

Par exemple, je peux travailler sur un réseau comme :

192.168.1.0/24

Le programme va essayer de vérifier plusieurs machines du réseau et certains ports courants.

Par exemple :

22   SSH
53   DNS
80   HTTP
443  HTTPS
3389 RDP

Si une machine répond sur certains ports, le programme peut afficher quelque chose comme :

IP : 192.168.1.10

22   SSH     OPEN
80   HTTP    OPEN
443  HTTPS   CLOSED

Le but n’est pas de créer un outil professionnel de cybersécurité.

Pour le moment, je veux surtout comprendre comment Python peut utiliser les notions que j’étudie déjà en réseau :

adresse IP
TCP
ports
services
réseau local

Le module socket

Pour ce projet, j’ai commencé à découvrir le module Python socket.

Par exemple :

import socket

Une socket permet à un programme de communiquer avec un autre équipement à travers le réseau.

Pour un scan de ports simple, le programme peut essayer d’ouvrir une connexion vers une adresse IP et un port.

Si la connexion fonctionne, cela peut indiquer que le port accepte des connexions.

C’est cette partie qui m’intéresse surtout, parce qu’elle relie directement la programmation aux notions TCP/IP que j’étudie dans les modules réseau.

Ajouter une petite analyse

Plus tard, je voudrais aussi ajouter quelques messages simples.

Par exemple :

Port 22 SSH ouvert
→ service SSH disponible

Port 23 TELNET ouvert
→ attention : Telnet n'est pas chiffré

Port 80 HTTP ouvert
→ vérifier si HTTPS est aussi disponible

Ce ne sera pas un véritable audit de sécurité.

Le programme donnera seulement quelques indications simples pour m’aider à comprendre les services détectés.

Je préfère garder le projet réaliste plutôt que d’essayer de créer directement un outil très avancé que je ne pourrais pas expliquer correctement.

Pourquoi deux projets ?

Le projet de mots de passe me permet surtout de pratiquer les bases de Python.

Le projet réseau va plus loin et correspond davantage à ma formation.

Je vois donc les deux projets comme une progression :

Python de base
     |
     v
Générateur et vérificateur de mots de passe
     |
     v
Manipulation de fonctions et conditions
     |
     v
Projet réseau
     |
     v
IP, TCP, ports et services

C’est aussi une façon pour moi de ne pas apprendre Python uniquement avec des exercices de cours.

J’essaie de créer des petits programmes qui ont un objectif concret.

Ce que j’apprends actuellement

Pour l’instant, je travaille surtout sur :

les variables ;

les conditions ;

les boucles ;

les fonctions ;

les listes et dictionnaires ;

les chaînes de caractères ;

les fichiers ;

les modules Python ;

les premières notions de socket.

Je suis encore en train de développer les deux projets.

Le premier devrait rester assez petit.

Le deuxième prendra plus de temps, parce que je veux comprendre correctement comment fonctionnent les connexions réseau et le scan des ports avant d’ajouter d’autres fonctionnalités.

Mon objectif est ensuite de mettre les deux projets sur GitHub avec leur code, quelques captures et une explication simple de leur fonctionnement.

Enregistrer un commentaire

0 Commentaires