floss:python

Ceci est une ancienne révision du document !


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 est celle de Python 3, en version 3.9 (décembre 2020) qui apporte de nombreuses amélioration mais n'est pas rétro-compatible avec la branche antérieure 2.7.x, qui n'est plus supportée, bien que certaines librairies logicielles n'aient pas fait l'objet d'une conversion vers la branche 3 (il est préférable alors d'éviter l'utilisation de ces programmes).

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,…

EduBlocks permet la transition de l'apprentissage par blocs via Scratch vers la programmation en Python (GitHub EduBlocks).

  • Installer Python : Python.org, le site où télécharger le logiciel libre, en version de base. Des versions existent pour Windows, Mac OS X et Linux, mais dans ce dernier cas, il est préférable d'opter pour la version proposée par votre distribution Linux particulière. Soyez vigilant aussi dans le choix entre les versions 32 bits et 64 bits !
Que vous choisissiez le tutoriel de la documentation officielle, ou un voire quelques autres documents pour votre initiation à Python, il est important de ne pas multipliser les sources, au risque de sans cesse relire les mêmes informations sur des notions de base. Dès que vous avez un peu compris les grands principes, comment fonctionne le langage, l'édition de programmes,… il est plus intéressant de développer votre expérience via des petits projets personnels, qui seront autant d'occasions de rechercher de la documentation, des exemples, des recommandations,…

Èvitez d'utiliser des documents trop anciens, surtout s'ils n'ont pas été adaptés pour la branche Python 3 !


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

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
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.

cf.

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.

  • 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
  • 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) :

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()
input()eval(input())
raw_input()input()

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
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • floss/python.1620632137.txt.gz
  • Dernière modification : 2021/05/10 09:35
  • de villersd