.. _bases: Les bases de la programmation Python ==================================== Méthodologie d'apprentissage ---------------------------- Pour chaque chapitre du cours : - lorsqu'elle est présente, visionner la vidéo d'introduction qui donne un aperçu général de la notion à acquérir ; - lire attentivement le cours, reproduire les exemples présentés et parcourir la documentation officielle correspondante pour une idée plus exhaustive des interactions possibles ; - faire au moins un exercice d'application. La totalité du contenu est disponible en ligne. Rester attentif au séquencement pédagogique pour ne pas prendre de retard. Sollicitez l'assistance de l'enseignant lorsque : - une notion du cours n'est toujours pas claire, après avoir visionné la vidéo, lu le cours et manipulé avec l'interpréteur interactif ; - vous butez sur un exercice après avoir essayé de le résoudre par vous même pendant au moins 10 mn. Si vous avez besoin d'assistance sur un exercice, assurez vous de produire un `exemple minimal reproductible `_. Minimal pour se concentrer sur l'essentiel du problème, reproductible pour pouvoir reproduire le problème sur une machine différente. Souvent cette démarche est suffisante pour cerner le problème et y apporter une solution. Les exercices ------------- Le cours ci dessous est accompagné d'exercices, pour lesquels les conventions suivantes sont utilisées : 🟩 Exercice obligatoire évalué (environnement `GitHub Classroom `_) 🟢 Exercice obligatoire non évalué (environnement local) 🟠 Si le temps le permet (environnement local) .. admonition:: Info L'environnement local sera décrit dans la partie `Installation `__ du cours. L'environnement GitHub Classroom -------------------------------- .. warning:: Vous devez être connecté sur un compte `GitHub `_ avec un ``username`` correspondant à vos identifiants ESIEE. Si votre adresse mail ESIEE est ``lazare-adam.garcin-labrosse@esiee.fr``, vous devez choisir ``lazare-adam-garcin-labrosse`` comme username GitHub. Parmi les exercices, certains sont obligatoires et évalués 🟩. L'acceptation d'un exercice déclenche la création de deux ressources distintes 🅰 et 🅱, générées dans le cloud. 🅰 un `repo GitHub `_ dont l'URL générique est ``https://github.com/[CLASSE]/[ASSIGNMENT-YOUR_GITHUB_NAME]``. C'est un référentiel qui contient l’ensemble du code, et des fichiers associés à cet exercice. A l'état initial, il contient uniquement le starter code. A l'état final il contiendra votre travail. 🅱 un `codespace `_ dont l'URL générique est ``https://[CODESPACE_NAME].github.dev``. C'est un environnement de développement `Visual Studio Code `_ hébergé dans le cloud. Ce codespace a été initialisé avec le contenu du repo 🅰. C'est ici que l'on devra : - Ecrire le code de la fonction secondaire. - Ecrire quelques appels à la fonction secondaire dans ``main()``. - Exécuter le programme depuis le terminal - Soumettre le code aux tests unitaires - Maximiser la qualité du code - Pusher le travail pour évaluation Les deux ressources 🅰 et 🅱 doivent être ouvertes simultanément dans un navigateur. Le développement se fait dans le codespace 🅱. Après soumission du travail : - le codespace 🅱 et le repo 🅰 sont synchronisés - les détails de l'évaluation du travail sont visibles dans l'onglet ``Actions`` du repo 🅰. Programme du cours ------------------ .. note:: COURS 0 `INTRODUCTION `_ (00:30) .. image:: images/python.svg :align: center .. _cours1-INSTALLATION: .. note:: COURS 1 `INSTALLATION `_ (01:00) .. image:: images/python.svg :align: center .. note:: COURS 2 `LES NOMBRES `_ (00:30) .. image:: images/python.svg :align: center .. note:: COURS 3 `CONTRÔLE DE L’EXÉCUTION D’UN PROGRAMME `_ (03:00) .. seealso:: Exercices 🟢 `Nombres premiers `__ .. image:: images/python.svg :align: center .. note:: COURS 4 `FONCTIONS ET MODULES `_ (03:00) .. seealso:: Exercices 🟩 `Nombres premiers `__ 🟢 `Suites de Syracuse `_ 🟠 `Théorie des nombres `_ .. image:: images/python.svg :align: center .. note:: COURS 5 `LES CHAINES DE CARACTÈRES `_ (03:00) .. seealso:: Exercices 🟩 `Palindromes `_ 🟢 `Sans les voyelles `_ 🟠 `Robustesse d’un mot de passe `_ 🟠 `Nombre cyclope `_ 🟠 `Nombre de Lychrel `_ 🟠 `Nombres magiques `_ .. image:: images/python.svg :align: center .. note:: COURS 6 `LES LISTES `_ (03:00) .. seealso:: Exercices 🟩 `Liste de Syracuse `_ 🟢 `Contenu d’un répertoire `_ 🟠 `Recherche de langue `_ 🟠 `Liste des extensions `_ 🟠 `Nombre de Harshad `_ 🟠 `Nombre heureux `_ 🟠 `Aplatir une liste `_ .. image:: images/python.svg :align: center .. note:: COURS 7 `LES TUPLES `_ (03:00) .. seealso:: Exercices 🟩 `ASCII Art - Encodage `_ 🟢 `ASCII Art - Décodage `_ .. image:: images/python.svg :align: center .. note:: COURS 8 `LES FICHIERS `_ (03:00) .. seealso:: Exercices 🟩 `Lecture de données `_ 🟢 `Lecture d’un fichier texte structuré `_ 🟢 `Lecture d’un fichier binaire `_ .. image:: images/python.svg :align: center .. note:: COURS 9 `LES SETS `_ (02:00) .. seealso:: Exercices 🟩 `Les mots de la langue française `_ 🟠 `Propriété des set `_ .. image:: images/python.svg :align: center .. note:: COURS 10 `LES DICTIONNAIRES `_ (04:00) .. seealso:: Exercices 🟩 `Les données météo `_ 🟢 `Les stations d’observation météo `_ .. image:: images/python.svg :align: center .. note:: COURS 11 `LES EXCEPTIONS `_ (01:00) .. seealso:: Exercices 🟢 `Conversion de type `_ .. image:: images/python.svg :align: center .. note:: COURS 12 `LES CLASSES `_ (03:00) .. seealso:: Exercices 🟩 `Le point cartésien 2D `_ 🟢 `Le vecteur cartésien 2D `_ .. image:: images/python.svg :align: center .. note:: COURS `QUALITÉ DU CODE `_ .. image:: images/python.svg :align: center .. note:: FAQ `FAQ `_ Autres ressources ----------------- - `100 days of Python `_ ; - `CheckIO `_ ; - `The Python Challenge `_ ;