Python
L'un des langages les plus lisibles du monde : simple en surface, redoutable en profondeur. Data, web, IA, scripting.
Définition
Python est un langage interprété, à typage dynamique, réputé pour sa lisibilité. Sa philosophie — « il doit y avoir une façon évidente de le faire » — en fait la porte d'entrée idéale vers la programmation, sans l'enfermer aux usages débutants : Instagram, Spotify, la data science et une immense partie de l'IA tournent en Python.
Syntaxe essentielle
Indentation significative, pas d'accolades : la structure visuelle est la structure logique.
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
print(list(fibonacci(8)))
# [0, 1, 1, 2, 3, 5, 8, 13]Cas d'usage & limites
- Data / IA : pandas, scikit-learn, PyTorch.
- Web : Django (batteries incluses), FastAPI (ultra-rapide).
- Scripting / cyber : Scapy, Requests, Impacket — le couteau suisse du pentester.
- Limites : le GIL verrouille le multithreading CPU (depuis 3.13, un build expérimental sans GIL via
--disable-gil; officiellement supporté depuis 3.14, mais toujours optionnel), vitesse brute < C/Rust, mobile quasi inexistant.
Dangers & bonnes pratiques
pickle.loads() sur données non fiables = exécution de code. Côté dépendances, les vrais risques sont le typosquatting (reqeusts au lieu de requests) et la confusion de dépendances : auditez avec pip-audit et figez avec --require-hashes. eval() sur entrée utilisateur ouvre la porte à l'exécution de code arbitraire.Environnements virtuels (venv), dépendances épinglées, linter ruff, tests pytest : la discipline fait la robustesse.