🐍 1. Introduction à Python
Qu'est-ce que Python ?
Python est un langage de programmation interprété, orienté objet et de haut niveau, avec une sémantique dynamique. Sa philosophie de conception met l'accent sur la lisibilité du code, ce qui réduit le coût de maintenance d'un programme.
Histoire de Python
Créé par Guido van Rossum et publié pour la première fois en 1991, Python porte le nom du groupe comique britannique Monty Python. Le langage a été conçu pour être agréable à lire et à écrire.
Applications de Python
- Développement web (Django, Flask)
- Science des données et analyse (Pandas, NumPy)
- Intelligence artificielle et machine learning (TensorFlow, PyTorch)
- Automatisation et scripts système
- Développement de jeux (Pygame)
- Analyse documentaire et RAG (Recherche Augmentée par Génération) - voir le module RAG
💻 2. Bases de Python
Syntaxe de Base
Python utilise l'indentation pour définir les blocs de code, contrairement à d'autres langages qui utilisent des accolades.
Variables et Types de Données
# Variables
nom = "Python"
version = 3.9
est_interprete = True
# Types de données
entier = 42
flottant = 3.14159
chaine = "Bonjour le monde"
liste = [1, 2, 3, 4, 5]
dictionnaire = {"langage": "Python", "version": 3.9}
Opérations de Base
# Opérations arithmétiques
addition = 5 + 3
soustraction = 10 - 4
multiplication = 6 * 7
division = 15 / 3
modulo = 17 % 5
# Opérations de comparaison
egal = (5 == 5)
different = (3 != 4)
superieur = (10 > 5)
🧱 3. Structures de Données
Listes
# Création et manipulation de listes
fruits = ["pomme", "banane", "orange"]
fruits.append("kiwi")
premier_fruit = fruits[0]
longueur = len(fruits)
# Parcours d'une liste
for fruit in fruits:
print(f"J'aime les {fruit}")
Dictionnaires
# Création et manipulation de dictionnaires
etudiant = {
"nom": "Dupont",
"age": 20,
"cours": ["Math", "Physique", "Informatique"]
}
# Accès aux valeurs
nom_etudiant = etudiant["nom"]
etudiant["age"] = 21
# Parcours d'un dictionnaire
for cle, valeur in etudiant.items():
print(f"{cle}: {valeur}")
Tuples et Ensembles
# Tuples (immuables)
coordonnees = (10, 20)
x, y = coordonnees
# Ensembles (pas de doublons)
nombres = {1, 2, 3, 4, 5}
nombres.add(6)
⚙️ 4. Fonctions
Définition et Appel de Fonctions
def saluer(nom):
"""Fonction pour saluer une personne"""
return f"Bonjour, {nom} !"
message = saluer("Pythoniste")
print(message)
Paramètres et Valeurs de Retour
def calculer(a, b, operation="addition"):
"""Fonction pour effectuer des calculs"""
if operation == "addition":
return a + b
elif operation == "multiplication":
return a * b
else:
return None
resultat1 = calculer(5, 3)
resultat2 = calculer(4, 6, "multiplication")
Fonctions Lambda
# Fonctions anonymes
carre = lambda x: x ** 2
print(carre(5)) # Affiche 25
# Utilisation avec map et filter
nombres = [1, 2, 3, 4, 5]
carres = list(map(lambda x: x**2, nombres))
pairs = list(filter(lambda x: x % 2 == 0, nombres))
📦 5. Modules et Packages
Importation de Modules
# Modules de la bibliothèque standard
import math
import random
from datetime import datetime
# Utilisation
racine = math.sqrt(16)
aleatoire = random.randint(1, 10)
maintenant = datetime.now()
Création de Modules Personnalisés
Créer un fichier utilitaires.py :
# utilitaires.py
def formater_nom(prenom, nom):
return f"{prenom.capitalize()} {nom.upper()}"
def est_pair(nombre):
return nombre % 2 == 0
Utilisation dans un autre fichier :
# main.py
import utilitaires
nom_formate = utilitaires.formater_nom("jean", "dupont")
print(nom_formate) # Affiche "Jean DUPONT"
if utilitaires.est_pair(42):
print("42 est pair")
🔍 6. Introduction au RAG (Retrieval Augmented Generation)
Qu'est-ce que le RAG ?
Le RAG (Retrieval Augmented Generation) est une technique d'intelligence artificielle qui combine la recherche d'information avec la génération de texte. Il permet de créer des réponses précises en se basant sur des documents existants.
Application dans le dossier PYTHON/rag
Le dossier PYTHON/rag contient un projet complet pour créer un moteur d'analyse documentaire qui peut :
- Lire différents formats de documents (PDF, HTML, Markdown)
- Extraire le contenu de ces documents
- Vectoriser le contenu pour la recherche sémantique
- Permettre une recherche intelligente dans les documents
Concepts clés abordés
- Programmation orientée objet : Utilisation de classes et d'héritage
- Gestion de fichiers : Lecture et traitement de différents formats
- Vectorisation : Transformation de texte en vecteurs numériques
- Recherche sémantique : Trouver des documents similaires par leur sens
- Accélération matérielle : Utilisation du processeur graphique Apple M3
Progression recommandée
Pour aborder ce projet de manière progressive :
- Commencer par les bases de Python dans les modules précédents
- Étudier le fichier
mod1.mdqui explique les concepts avancés - Examiner le code dans
rag.pypour comprendre l'implémentation - Exécuter le programme avec des documents de test
- Progressivement modifier et améliorer le code
💡 Conseil : Ne pas hésiter à revenir sur les bases si certains concepts sont difficiles à comprendre. La maîtrise de Python prend du temps et de la pratique.