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

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


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. http://wiki.python.org/moin/GuiProgramming

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()
  • Installer facilement des modules pythonplugin-autotooltip__default plugin-autotooltip_bigInstaller facilement des modules python

    AnacaondaPythonxy ...

    Introduction

    Des modules additionnels de Python peuvent être installés via des sites qui les proposent. Il s'agit de :

    * créateurs de programmes, librairies * firmes ou associations qui proposent des ensembles cohérents (comme
  • Tutoriel Cairo pour programmeurs Pythonplugin-autotooltip__default plugin-autotooltip_bigTutoriel sur Cairo pour les programmeurs Python

    Texte original en anglais de Michael Urman.

    Cairo est une puissante bibliothèque graphique 2D.

    Ce document vous présente la façon dont fonctionne Cairo et la plupart des fonctions que vous utiliserez pour créer le graphisme que vous désirez.
  • sélection de codes sources ActiveStateplugin-autotooltip__default plugin-autotooltip_bigSélection de codes Python du site ActiveState

    Site :

    * Draw Text To Image * Mandelbrot Fractal image output to ppm file * Find Duplicate Files * Teach your computer a few tricks (Artificial Neural Network) * Game of Life - Python 3.4 & tkinter * 2D Fluid Simulation using FHP LGCA (Lattice Gas Cellular Automata) * Simple Linear Regression with Pure Python * All in one Area Calculator (tkinter & Python 3) * Rotatable Tetrahedr…
  • Quelques codes astucieuxplugin-autotooltip__default plugin-autotooltip_bigQuelques codes astucieux

    N.B. : codes glanés sur des forums, canaux IRC, mailing lists, ... (et parfois créés). Les codes de cette page sont normalement pythoniques, et à considérer sous licence cc0, sauf mention contraire.

    Effacer les lignes vides dans un fichier
  • Questions fréquentesplugin-autotooltip__default plugin-autotooltip_bigQuestions fréquentes

    FIXME : ...

    * How to print in Python without newline or space?

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 pour analyser le trafic de visites. En restant sur ce site, vous acceptez le stockage de cookies sur votre ordinateur. En savoir plus
  • floss/python.txt
  • Dernière modification: 2020/09/01 10:08
  • de villersd