Nouvelles
- Les notes de l’évaluation à mi-semestre sont disponible sur demande à <loic.grobol@gmail.com>
- Les projets sont à rendre le 10 janvier 2020 au plus tard à 20h00 (UTC+1)
- Le cours du 2019-12-19 est annulé faute de transports
- Le cours du 2019-12-10 est annulé faute de transports
Pratique
- Loïc Grobol <loic.grobol@gmail.com>
- Yoann Dupont <yoa.dupont@gmail.com>
- Le mercredi de 9h à 12h en salle 7,03 (Inalco PLC, 65 rue des Grands Moulins Paris) sauf indication contraire
- Cette page : https://loicgrobol.github.io/python-im-2
- Consignes pour les projets
Objectifs
Ce cours a pour objectif de faire de vous des développeuses et des développeurs opérationnels en Python, il suppose que vous êtes déjà en grande partie autonomes dans pour une utilisation simple de Python, ce qui correspond essentiellement aux acquis du cours de M1 (même si des rappels seront faits aux moments opportuns).
Vous y seront présentés des concepts et de fonctions avancées du langage, ainsi que des outils de développement standards, en insistant sur les bonnes pratiques, la collaboration et la réutilisabilité. L’accent sera mis sur le traitement de données textuelles et les problèmes liés aux données multilingues.
Programme
Tous les supports sont sur github, les liens vers les slides et les notebooks ci-dessous ouvrent sur Binder pour une utilisation sans rien installer.
2019-09-18 : Rappel des bases
- Slides (énoncés rectifiés!)
- corrections:
2019-09-18 : Rappel des bases (2)
- Slides
- Exos:
- exercices à la fin du notebook sur le ventre de Paris
- Corrections:
2019-10-02 : Objets et modules
- Slides objets
- Slides modules
- Exos:
- Exercices à la fin du notebook modules, à partir de
fixme.py
- Codingame Enigma
- Exercices à la fin du notebook modules, à partir de
2019-10-09 : récursion
- Slides
- Exo préliminaire:
- Complétez le script qui parse le fichier conll et donne le nombre de phrases, le nombre de tokens et le nombre de tokens d’une catégorie morpho-syntaxique choisie par l’utilisateur. Trouver les tokens dont le lemme se termine en ‘ment’ qui ne sont pas des adverbes, les afficher triés par forme et par fonction.
- Exos:
- Codingame Brackets
- exercices à la fin du notebook
- Corrections:
2019-10-15 : exoooooos
2019-10-23 : examen et projets
2019-11-04 : git exos et exercice incendie
2019-11-13 : git
2019-11-20 pip et virtualenv
2019-11-27 parseurs et correction
2019-12-03 linters et débuggueurs
Outils
Vous aurez besoin d’un interpréteur Python et d’un éditeur de texte.
Python & co
Vous travaillerons avec Python 3.7 et supérieur
Les supports de cours sont essentiellement sous forme de notebooks Jupyter,
les diapos utilisant RISE.
Pour utiliser les notebooks (anciennement ipython notebook maintenant jupyter notebook) vous aurez
besoin d’installer sur votre machine de travail.
Je vous incite également à utiliser le shell interactif ipython
qui est une version améliorée du
shell python
(ipython est inclus dans jupyter).
Deux options pour l’installation :
Installer uniquement les outils nécessaires avec pip
-
Installer Python 3, de préférence via le gestionnaire de paquets de votre système, sinon à partir de https://www.python.org/downloads/. Pour les distributions dérivées de Debian (y compris Ubuntu) vous aurez également besoin d’installer
pip
sudo apt install python3 python3-pip
-
Installer jupyter
python3 -m pip install --user jupyter
Utiliser Anaconda
Nous ne le recommandons pas, mais si vous préférez, vous pouvez installer anaconda, qui gère non-seulement Python et les modules Python, mais aussi beaucoup d’autres paquets et installera beaucoup de modules tiers dont on se servira pas
Nous verrons également dans le cours comment utiliser virtualenv pour gérer des installations de Python isolées du système pour plus de confort.
Éditeur de texte
Dans un premier temps : pas un traitement de texte, pas un IDE, un éditeur de texte.
Une fois que vous êtes à l’aise pour développer dans un éditeur de texte, vous pouvez si vous le désirez passer à un IDE
Ressources
Il y a beaucoup, beaucoup de ressources disponibles pour apprendre Python. Ce qui suit n’est qu’une sélection.
Livres
- How to think like a computer scientist, by Jeffrey Elkner, Allen B. Downey, and Chris Meyers. Vous pouvez l’acheter. Vous pouvez aussi le lire ici
- Dive into Python, by Mark Pilgrim. Ici vous pouvez le lire ou télécharger le pdf.
- Learning Python, by Mark Lutz.
- Beginning Python, by Magnus Lie Hetland.
- Python Algorithms: Mastering Basic Algorithms in the Python Language, by Magnus Lie Hetland. Peut-être un peu costaud pour des débutants.
- Programmation Efficace. Les 128 Algorithmes Qu’Il Faut Avoir Compris et Codés en Python au Cours de sa Vie, by Christoph Dürr and Jill-Jênn Vie. Si le cours vous paraît trop facile. Le code Python est clair, les difficultés sont commentées. Les algos sont très costauds.
Web
Il vous est vivement conseillé d’utiliser un (ou plus) des sites et tutoriels ci-dessous.
- Coding Game. Vous le retrouverez dans les exercices hebdomadaires.
- Code Academy
- newcoder.io. Des projets commentés, commencer par ‘Data Visualization’
- Google’s Python Class. Guido a travaillé chez eux. Pas ce Guido, celui-là
- Mooc Python. Un mooc de l’INRIA, carré.
- Code combat
Licence
Copyright © 2019 Loïc Grobol <loic.grobol@gmail.com> et Yoann Dupont <yoa.dupont@gmail.com>
Sauf indication contraire, les fichiers présents dans ce dépôt sont distribués selon les termes de la licence MIT
Un résumé simplifié de cette licence est disponible à https://tldrlegal.com/license/mit-license.