Outils pour utilisateurs

Outils du site


floss:python

Python : quelques références, trucs et astuces

Python est un langage de programmation de haut niveau, libre, polyvalent, facilement accessible aux débutants, mais permettant aussi de réaliser des applications sophistiquées et professionnelles. Certains l'utilisent simplement comme langage de script, pour automatiser et faciliter différentes tâches informatiques.

Cette page est destinée à en faciliter l'apprentissage. Pour une introduction plus complète, cf. la page Python sur le site de Wikipedia en français ou la page en anglais !

La branche actuelle de Python, Python 3, en version 3.6 (octobre 2017) apporte de nombreuses amélioration mais n'est pas rétro-compatible avec la branche 2.7.x (dernières évolutions de la branche 2). La grande majorité des modules, notamment scientifiques, sont portés vers la nouvelle branche. Si vous débutez, passez d'office à Python 3 ! Si vous utilisez un OS en version stable proposant encore la version 2, il est grands temps de songer à adopter la nouvelle version. Heureusement, tout n'est pas à jeter dans la documentation et les codes de la version 2 :-D

Références recommandées pour débutants

Si vous n'avez vraiment encore aucune idée de ce qu'est la programmation, passez une heure amusante à apprendre les rudiments de la programmation avec scratch, et plus si affinité !

Scratch utilise un environnement visuel et le glisser-déposer, ce qui facilite les premiers pas en programmation (cf. cette vidéo).

Il existe d'autres langages de programmation visuels orientés vers l'apprentissage de la programmation : Alice, blockly, snap!, Squeak, RoboMind,…

Essayer, débuter, apprendre les bases ...

Livres, manuels ou exerciseurs de niveau intermédiaire :




Références pour une utilisation (scientifique) plus avancée

Voir cette présentation de l'écosystème Python scientifique, par Gaël Pegliasco (10/11/2016)

Distributions et installation :

Outils web interactifs

  • Skulpt, implémentation en javascript de Python 2, permettant de l'utiliser dans un navigateur, côté client. Utilisé dans des cours.
  • Trinket, permet l'inclusion de code et de son exécution dans n'importe quel navigateur
  • repl.it : site web permettant d'explorer interactivement des langages de programmation dont Python, sans rien installer !
  • DataJoy : environnement complet pour programmer en Python dans un navigateur

Éditeurs

Quelque soit l'éditeur intégré utilisé, vous devrez le configurer : utilisation de 4 espaces plutôt que la tabulation pour les indentations, indication de l'interpréteur et son chemin, python ou python3. L'utilisation du shebang et l'indication de l'encodage sont recommandées.

Livres

Tutoriels, cours

Conférences

Ressources (codes sources, tutoriels, documentation, livres ...)

Code & qualité

Applications générales en Science

Applications en Chimie

importing, manipulating, and exporting molecular models. cf. Scoria: a Python module for manipulating 3D molecular data

Autres applications spécifiques en Science

Autres applications, librairies générales

Graphical User Interfaces

cf. http://wiki.python.org/moin/GuiProgramming

Librairies particulières

De manières générales, les librairies qui ne sont pas dans la version standard de Python seront placées (par des programmes de “setup” ou manuellement) dans le sous-répertoire .\Libsite-packages\ de Python.

Autres distributions ou programmes utiles, pour utilisateurs avertis, ou programmeurs

Python pour mobiles

Python et la sécurité

Techniques particulières

Autres pages de liens sur Python

Exemples d'applications (libres) écrites en Python, ou utilisant Python, cookbook,...

  • En chimie
  • HippoDraw, logiciel générant des graphiques de données, en particulier statistiques
  • Zope Plone : un environnement et un CMS ou “content management system”
  • Skencil : logiciel libre de dessin vectoriel
  • SciTE, SCIntilla based Text Editor
  • FreeCAD, programme de computer aided design
  • Le site freshmeat.net répertorie de nombreux projets Python, listable à partir des menus Browse by - Programming Language - Python
  • PyScrabble : un jeu de Scrabble en ligne, multi-joueurs.
  • Childplay : jeux éducatifs
  • Python Cookbook de ActiveState, nombreux programmes Python
  • Python based scientific analysis cookbook, une dizaine de programmes numériques simples et utiles utilisant scipy/pylab/matplotlib
  • Pybibliographer : outil de gestion de base de données bibliographiques
  • Anki : programme de mémorisation sur le principe des “flashcards” (cartes mémoires)
  • Gourmet Recipe Manager : base de données de recettes de cuisine
  • GRAMPS : logiciel de généalogie
  • Pylote : logiciel éducatif pour dessiner sur l’écran et y manipuler les instruments de géométrie.
  • Plusieurs outils de configuration, déploiement et gestion de parc informatique
  • Scrapy : outils pour parcourir, lire des pages et extraire des données structurées de sites web
  • Advanced Python Scheduler : gestion temporelle de tâches en Python (permet d'être indépendant de cron)
  • Indico : logiciel intégré d'organisation de conférences + documentation sur readthedocs.org
  • gnuradio : outils logiciels pour créer des radios s'affranchissant de matériels non libres
  • SANE-PyGTK : interface de scan minimaliste
  • Calibre : gestion de livres électroniques (et papiers)
  • Zim : un wiki personnel
  • edX (Python & Ruby) : Education X, code du MOOC, ou Massively Open Online Courses (cours en ligne ouverts et massifs), créé par le Massachusetts Institute of Technology (MIT) et Harvard University.
  • SDAPS : optical mark recognition (OMR) program (en Python et LaTeX)
  • MoinMoin : wiki écrit en Python
  • Phatch : Photo batch processing, multiOS
  • OpenERP et ERP5, deux ERP opensource très réputés.
  • OpenPLM, Une solution orientée produit et PLM (Product Lifecycle Management)
  • GNU Mailman : logiciel de gestion de listes de diffusion et de newsletters
  • MakeHuman, pour fabriquer des modèles 3D hummains
  • Openstack, service d'infrastructure du domaine du cloud computing
  • Django, framework web MVC
  • OpenSlides, logiciel en ligne de présentation et de planification de réunions
  • Plotly, site collaboratif d'analyse de données et de génération de graphiques
  • HUBzero, plateforme pour créer des sites web dynamiques scientifiques et éducatifs (simulations,…), en relation avec l'outil Rappture (Rapid application infrastructure). Des API Python et exemples sont proposés via le site nanoHUB.
  • Reddit, un site de partage de liens (code open source)
  • PBS, Public Broadcasting Service (lien code source)
  • Kallithea, gestion de codes sources utilisant les systèmes de version git et mercurial
  • Sugar labs : environnement d'apprentissage éducatif
  • Utilisez le langage de programmation Processing avec le "mode Python"
  • pysensor application transmettant les données d'un accéléromètre d'un mobile
  • Attic, programme de backup avec deduplication
  • SchoolTool, logiciel pour la gestion administrative d'écoles
  • JModelica, optimisation, simulation et analyse de systèmes dynamiques complexes, avec des possibilités de script en python
  • Katal, catalogue de fichiers (cf ref1)
  • SpaceShooter, retrogaming en pygame
  • jemdoc, light text-based markup language designed for creating websites
  • Pelican, générateur de site web statique
  • GraphDash, outil Python (Flask) permettant de construire une interface web à partir de graphes (licence Apache v2)
  • Pyllica, série de programmes en python permettant de récupérer automatiquement des textes sur Gallica

Applications très simples (pour étude) :

Exemples d'applications en recherche scientifique de Python

Logiciels permettant l'ajout de plugins écrit en Python

Blogs consacrés au moins partiellement à Python

Articles intéressants

De Python 2 à Python 3

Python 3, une nouvelle branche n'assurant pas une rétrocompatibilité avec la branche 2 existe depuis 2007, mais est en version stable depuis moins longtemps. De plus en plus de librairies sont compatibles avec cette branche, mais beaucoup reste à faire. Python 2.7 continue à être maintenu et fonctionne avec la plupart des librairies.

La plupart des distributions Linux proposent (Q1 2015) à la fois la branche 2 (invoquée par la commande python) et la branche 3 (les noms sont terminés par le chiffre 3, et l'interpréteur est invoqué par exemple par “python3”. C'est dans de nombreux cas la version 3.4 qui est dans les dépôts. La version stable 14.04 LTS de Ubuntu propose Python en version 2.7 et 3.4.

Éléments de discussions sur le passage de Python 2 à Python 3 :

Quelques références sur Python 3

Installation conjointe des branches 3 et 2 (Ubuntu) :

Résumés des changements principaux :

Python 2 Python 3
print aprint(a)
7/3 → 2
7./3 → 2.33333333
7/3 → 2.33333333
7 / / 3 → 2
pas de chaîne unicodeles chaînes sont unicode
binary = string binary = données binaires (bytes)
types entier et entier long un seul type entier (=long)
dico.has_key('cle') → True/False 'cle' in dico → True/False
from Tkinter import * from tkinter import *
execfile() execfile()
range() –> list
xrange() → generator
range() → generator
xrange()
filter, map, reduce reduce
lambdalambda
input()eval(input())
raw_input()input()

Trucs, astuces, questions fréquentes, contributions personnelles,...

À classer :

1)
cela ressemble à ceci sous Ubuntu : sudo apt-get install python-all python-all-dev idle python-numpy python-scipy python-matplotlib python-matplotlib-doc python-visual python-doc python-examples diveintopython python-imaging-doc python-pp python-jinja2 python-markdown python-pygments python-landslide ipython ipython-qtconsole ipython-doc ipython-notebook python-pip python-scitools mayavi2 python-numexpr python-pandas python-pygame
2)
cela ressemble à ceci sous Ubuntu : sudo apt-get install python 3 idle3 spyder3 python3-matplotlib python3-scipy python3-numpy python3-pil python3-pip python3-pandas
floss/python.txt · Dernière modification: 2017/11/20 09:02 par villersd