Python Intermédiaire

✨ Niveau
🕗 Durée
💻 Pratique
Intermédiaire
6-8 mois
Plus de 300 exercices de codage
Bienvenue dans le cours de niveau intermédiaire sur Python ! Dans ce cours, vous découvrirez de nombreuses fonctionnalités avancées du langage ainsi que des meilleures pratiques pour les utiliser. Ce cours est destiné aux personnes qui ont déjà une certaine expérience avec Python et qui souhaitent améliorer leurs connaissances et apprendre des sujets plus avancés.
notion image
À la fin de ce cours, vous saurez comment utiliser les classes et maîtriserez l'héritage. Nous couvrirons les meilleures pratiques pour écrire du code pour des projets de grande envergure et utiliserons le typage qui aide à analyser statiquement le code pour détecter les erreurs. Vous travaillerez avec les décorateurs et créerez vos propres décorateurs utilitaires qui réduiront considérablement la taille du code. Nous aborderons les itérateurs et les itérables ainsi que la bibliothèque standard itertools. glob et pathlib seront utilisés pour travailler avec le système de fichiers. Plus important encore, nous apprendrons à utiliser async / await pour optimiser notre code lors de travaux avec de grandes entrées/sorties, des bases de données et des requêtes réseau.

💻 Apprendre en Pratiquant

Dans ce cours, vous apprenez en faisant ! Chaque concept est accompagné de plusieurs défis interactifs que vous devrez résoudre pour passer au suivant. Nous croyons que l'apprentissage pratique est la meilleure façon d'acquérir des connaissances approfondies. Ici, vous aurez de nombreux exercices stimulants et intéressants pour pratiquer chacun des concepts couverts.
Vous étudierez à votre propre rythme. Vous pouvez y aller à fond et terminer plusieurs niveaux en une semaine, ou prendre votre temps et vous concentrer plus longtemps sur chaque concept.
Il y a un forum pour poser des questions et vous débloquer. Vous pouvez poser ou répondre aux questions des autres sous chaque défi.

🎓 Programme

Ce cours se concentre sur les concepts fondamentaux et certaines fonctionnalités avancées de Python, en les introduisant chacun de manière intuitive. Pour rendre le processus plus amusant et engageant, les concepts sont organisés en niveaux, et passer chaque niveau signifie que vous avez maîtrisé un nouveau concept. Voici les principaux sujets que nous aborderons ici :
Fonctions avancées
  • Arguments uniquement positionnels & arguments uniquement nommés
  • Récursivité
  • Passage par valeur VS passage par référence (arguments mutables)
Expressions régulières
  • Bases et applications des expressions régulières
  • Recherche et correspondance
Les classes
  • Définition des classes
  • Définition et accès aux attributs
  • Le constructeur __init__
  • Définition de méthodes à l'intérieur des classes
  • Méthodes magiques
  • Variables publiques et privées
Héritage
  • Hériter d'une classe de base
  • Modifier les fonctionnalités en substituant une méthode
  • Étendre les fonctionnalités avec l'aide de super()
  • Hériter de plusieurs classes de base
Encapsulation
  • Variables privées
  • Variables protégées
  • Comment Python gère réellement les variables privées et protégées
Exceptions
  • raise et except
  • Hiérarchie des exceptions
  • Création d'exceptions personnalisées
Modules
  • Travailler avec des bibliothèques
  • Modules dans le système de fichiers
  • Initialisation de module
  • Importation de variables, fonctions et classes
Système de fichiers
  • glob pour travailler avec des collections de fichiers
  • pathlib pour travailler avec des fichiers spécifiques
  • Suppression de fichiers
  • Création/suppression récursive de répertoires entiers
Classes Avancées
  • Variables de classe VS variables d'instance
  • Décorateurs intégrés (@dataclass, @property, @staticmethod, etc.)
  • Classes abstraites (module ABC)
Décorateurs
  • Décorateurs pour fonctions
  • Décorateurs pour classes
  • Création de décorateurs personnalisés
Typage
  • Typage pour les types intégrés (int, list, dict, etc.)
  • Typage pour les classes personnalisées
  • Typage à l'intérieur d'une classe
  • Analyse statique : ce que nous pouvons accomplir et quelles sont les limitations
Itérateurs et itérables
  • Itérateurs
  • Générateurs
  • Itérables
  • itertools : cycle(), repeat(), chain(), etc.
  • Création d'un générateur personnalisé
  • Création d'un itérable personnalisé
Gestionnaires de contexte
  • Implémentation d'un gestionnaire de contexte personnalisé
  • Utilisation de la syntaxe with
  • Gestionnaires de contexte en tant que décorateurs
Multithreading et Multiprocessing
  • Le module threading
  • Création d'une classe de thread personnalisée
  • Le module multiprocessing
  • Traitement en pools
  • Partage de données entre threads et processus
asyncio
  • Syntaxe async et await pour les fonctions
  • Travailler avec des fichiers
  • Travailler avec des requêtes réseau
  • Requêtes via SQLAlchemy
  • asyncio vs threads et processus
Conclusion et projets
  • Plusieurs projets encadrés résumeront tout le contenu.
  • Cela inclura beaucoup de recherches et d'auto-apprentissage.
  • Vous automatiserez certaines tâches et apprendrez des bibliothèques utiles

🚀 Bienvenue

L'apprentissage est à 80 % un travail individuel ! Terminer ce cours sera votre réussite, et nous sommes là pour soutenir ce parcours. Vous pouvez utiliser la section en bas de chaque exercice pour poser des questions ou aider les autres.