Informatique

Sommaire

{{{Fiche d'identité}}} |{{Apparu en}}| 1991| |{{Auteur}}| Guido van Rossum (Pays-Bas)| |{{Système d'exploitation}}| Multiplate-forme| | {{Licence}} |Python Software Foundation License (Compatible GPL)| | {{Exécution}} |Interprété via Byte-code| | {{Paradigmes}} |Orienté objet, impératif, fonctionnel, procédural, réflectif| | {{Typage}} |Fort, dynamique| | {{Influencé par}} |ABC, C, ICON, Modula-3, Perl, Smalltalk, Tcl| | {{À influencé}} |Ruby, Groovy, Boo| |{{Extension de fichier}}| .py .pyw| {{{Particularités}}} La principale particularité de Python est de posséder une indentation significative, c'est-à-dire que les blocs d'instructions sont déterminés par leur décalage par rapport à la marge gauche, et non par une paire d'accolades {...} comme dans beaucoup de langages. Cela peut paraître déroutant, mais cela permet d'écrire du code lisible car très bien présenté. L'autre caractéristique de python est d'être {orthogonal}: il est défini par un nombre minimal de mots clés, il n'y a pas de redondance. Ainsi, les structures «switch...case» et «repeat...until» n'existent pas car elle peuvent être remplacées par des clause «if» et ou des boucles «while». Une conséquence directe est qu'en général, il n'y a qu'une seule manière simple d'écrire un algorithme en Python. Pour les élèves, cette caractéristique facilite l'apprentissage, et évite d'avoir plusieurs solutions correctes à un problème donné, qui peut être une source de confusion. Python est un langage très explicite: il n'y a pas de mécanismes cachés ou «automagiques» et dont le résultat dépend du contexte d'exécution. Python fait ce qui est écrit, un point c'est tout, ce qui fait qu'un programme python est facile à relire. Python ne possède pas de pointeurs et gère lui-même toutes les allocations de mémoire grâce à son «ramasse-miettes». De plus, il détermine seul le type des données utilisées (typage dynamique). Cependant, il ne permet pas les conversions implicites («cast») comme en C ou en Php (typage fort). Un très grand nombre de bibliothèques sont disponibles pour Python, ce qui permet de développer facilement des projets de haut niveau sans avoir à coder beaucoup de chose. Voici quelques exemples: - [PIL:->http://www.pythonware.com/products/pil/] manipulation d'images - [scipy et numpy:->http://www.scipy.org/] calculs scientifiques - [matplotlib<-][matplotlib:->http://matplotlib.sourceforge.net/] réalisation de graphiques scientifiques - [twisted:->http://twistedmatrix.com/] applications client/serveur - [pyserial:->http://pyserial.sourceforge.net/] accès aux ports série - [pygame:->http://pygame.org/] permet de réaliser des jeux: graphisme 2D, son, clavier, souris, timer... {{Environnements de développement}} Python est installé avec son propre IDE: Idle. Simple mais un peu rustique. Un simple éditeur de texte permet de travailler avec Python, de préférence avec coloration syntaxique tel que [notepad++->http://notepad-plus-plus.org/] ou [SciTe->http://www.scintilla.org/SciTE.html]. Un IDE intéressant est [Spyder->http://spyderlib.googlecode.com/]: très complet, il intègre très bien les fenêtres créées par [matlpotlib->#matplotlib] ce qui en fait un substitut à Matlab. Il existe un {plugin} pour [Eclipse->http://www.eclipse.org/], [pydev->http://pydev.org/], qui permet d'utiliser toute la puissance d'Eclipse pour des projets Python. Sous Windows, un projet très intéressant est [Python(x,y)->www.pythonxy.com]. Il regroupe en un seul fichier (certes un peu gros: ~420 Mo) tout ce qu'il faut pour utiliser python dans un cadre scientifique: python, des IDE (eclipse, spyder, scite...) et des dizaines de bibliothèques à vocation scientifique... {À voir absolument!} {{Hello World}} Créer un fichier hello.py contenant: print "Hello world" pour l'exécuter, taper la commande: > python hello.py ou double-cliquer sur hello.py {{{Avantages}}} -* Facile à apprendre -* Programmes faciles à relire -* Débogage simple -* Un simple éditeur de texte est suffisant pour programmer -* Très puissant -* Très grand nombre de bibliothèques disponibles {{{Inconvénients}}} -* Langage interprété, donc plus lent en théorie, mais ce défaut est largement compensé par la rapidité de développement. -* Encore peu répandu dans les lycées, sauf auprès des professeurs de mathématiques. -* La nouvelle version python 3 est partiellement incompatible avec les versions 2. {{{Liens}}} -* [Python 2.7->http://www.python.org/download/] -* [Python(x,y)->www.pythonxy.com] -* Entreprises utilisant Python: [->www.python.org/about/success/] -* Documentation en ligne: -** Documentation officielle: [->http://docs.python.org/] -** Tutoriel officiel: [->http://docs.python.org/tutorial/index.html] -** Tutoriel intéressant: [Dive into Python->http://www.diveintopython.net/] -** Livre de Gérard Swinnen, professeur d'informatique en Belgique: [Apprendre à programmer avec Python->http://inforef.be/swi/python.htm] -* Utilisation de Python en mathématiques dans l'académie d'Amiens: [AmiensPython->http://pedagogie.ac-amiens.fr/maths/AmiensPython/]

Python

Python est un langage de programmation qui allie puissance et facilité d’apprentissage, souvent cité sur internet comme étant le langage pour apprendre à programmer.

Fiche d’identité

Apparu en 1991
Auteur Guido van Rossum (Pays-Bas)
Système d’exploitation Multiplate-forme
Licence Python Software Foundation License (Compatible GPL)
Exécution Interprété via Byte-code
Paradigmes Orienté objet, impératif, fonctionnel, procédural, réflectif
Typage Fort, dynamique
Influencé par ABC, C, ICON, Modula-3, Perl, Smalltalk, Tcl
À influencé Ruby, Groovy, Boo
Extension de fichier .py .pyw

Particularités

La principale particularité de Python est de posséder une indentation significative, c’est-à-dire que les blocs d’instructions sont déterminés par leur décalage par rapport à la marge gauche, et non par une paire d’accolades {...} comme dans beaucoup de langages. Cela peut paraître déroutant, mais cela permet d’écrire du code lisible car très bien présenté.

L’autre caractéristique de python est d’être orthogonal : il est défini par un nombre minimal de mots clés, il n’y a pas de redondance. Ainsi, les structures « switch...case » et « repeat...until » n’existent pas car elle peuvent être remplacées par des clause « if » et ou des boucles « while ». Une conséquence directe est qu’en général, il n’y a qu’une seule manière simple d’écrire un algorithme en Python.
Pour les élèves, cette caractéristique facilite l’apprentissage, et évite d’avoir plusieurs solutions correctes à un problème donné, qui peut être une source de confusion.

Python est un langage très explicite : il n’y a pas de mécanismes cachés ou « automagiques » et dont le résultat dépend du contexte d’exécution. Python fait ce qui est écrit, un point c’est tout, ce qui fait qu’un programme python est facile à relire.

Python ne possède pas de pointeurs et gère lui-même toutes les allocations de mémoire grâce à son « ramasse-miettes ». De plus, il détermine seul le type des données utilisées (typage dynamique). Cependant, il ne permet pas les conversions implicites (« cast ») comme en C ou en Php (typage fort).

Un très grand nombre de bibliothèques sont disponibles pour Python, ce qui permet de développer facilement des projets de haut niveau sans avoir à coder beaucoup de chose. Voici quelques exemples :

Environnements de développement

Python est installé avec son propre IDE : Idle. Simple mais un peu rustique.

Un simple éditeur de texte permet de travailler avec Python, de préférence avec coloration syntaxique tel que notepad++ ou SciTe.

Un IDE intéressant est Spyder : très complet, il intègre très bien les fenêtres créées par matlpotlib ce qui en fait un substitut à Matlab.

Il existe un plugin pour Eclipse, pydev, qui permet d’utiliser toute la puissance d’Eclipse pour des projets Python.

Sous Windows, un projet très intéressant est Python(x,y). Il regroupe en un seul fichier (certes un peu gros : 420 Mo) tout ce qu’il faut pour utiliser python dans un cadre scientifique : python, des IDE (eclipse, spyder, scite...) et des dizaines de bibliothèques à vocation scientifique... À voir absolument !

Hello World

Créer un fichier hello.py contenant :
print "Hello world"
pour l’exécuter, taper la commande :
> python hello.py
ou double-cliquer sur hello.py

Avantages

  • Facile à apprendre
  • Programmes faciles à relire
  • Débogage simple
  • Un simple éditeur de texte est suffisant pour programmer
  • Très puissant
  • Très grand nombre de bibliothèques disponibles

Inconvénients

  • Langage interprété, donc plus lent en théorie, mais ce défaut est largement compensé par la rapidité de développement.
  • Encore peu répandu dans les lycées, sauf auprès des professeurs de mathématiques.
  • La nouvelle version python 3 est partiellement incompatible avec les versions 2.

Liens

Mise à jour : 12 octobre 2019