Outils graphiques pour PYTHON

Présentation du langage Python

Présentation

Le langage Python a la réputation d'être facile à apprendre, on le donne parfois au débutants, il se veut lisible avec une syntaxe épurée et pleinement fonctionnel.

Il s'agit d'un langage de haut niveau, avec lequel on s'affranchit des fameux problèmes d'effets de bords bien connu des langages impératifs tels que le C. Il est utilisable dans de très nombreuses situations. Il s'agit d'un langage interprêté, dont la machine virtuelle s'exécute en un temps record, très loin devant JAVA. Ce langage est un langage objet, mais le paradigme objet n'est pas forcé d'être respecté ce qui offre à Python une utilisation très bien adaptée pour l'écriture de scripts.

Le langage Python fait aujourd'hui l'objet de plusieurs implémentations. La plus connue et la plus utilisée est CPython disponible pour la plupart dess plateformes. D'autres versions plus surprenantes, et dans certains cas très appréciables, sont des implémentations de Python par dessus des machines virtuelles telles que JAVA ou .NET. Elles offrent au langage Python une très grande adaptabilité.

Architecture de Python

Le Python est donc un langage qui se veut universel, offrant un temps de programmation extrêmement réduit, très puissant et porté sur un maximum d'architectures.

Syntaxe

Une syntaxe épurée, un langage compact et très puissant, voyons tout de suite un exemple.

Exemple de la fonction mathématique "factorielle". Définiton mathématique et informatique sur Wikipedia.

En JAVA :

int factorielle(int n) {
  if(n==0) {
    return 1;
  } else {
    return n * factorielle(n-1);
  }
}

La même chose en Python :

def factorielle(n):
  if n==0:
    return 1
  else :
    return n * factorielle(n-1)

Ici plus d'accolades, plus de points virgules, tout est dans l'indentation, le programmeur est forcé de bien présenter son code source. Le code est plus lisible mais n'exploite pas la puissance de la syntaxe du langage.

Ici on a recréé l'opérateur ternaire qui n'existe pas en Python.
def ternaire_factorielle (n):
  return n==0 and 1 or n * factorielle(n-1)

Et voici une version expert de la définition de la factorielle, exemple mis à disposition sur Wikipédia.
fact = lambda x : x>0 and x*fact(x-1) or 1

Et si maintenant on voulait obtenir la liste des n premières valeurs de la fonction factorielle, on devrait appeler n fois la fonction récursive, ce qui donnerait une complexité n*n!
En Python on peut coder cette fonctionnalité en utilisant le mécanisme des générateurs, qui consiste en un point d'arrêt dans le code :
Exemple avec une factorielle calculée de manière itérative.
def gen_factorielle(n):
  fact = 1
  it = 1
  while(it <= n):
    yield fact
    fact = fact*(it+1)
    it = it+1


Utilisation :
liste=[n for n in gen_factorielle(4)]
print liste
>>>
[1, 2, 6, 24]
La complexité est maintenant n!

A travers ces exemples, nous avons vu que le langage Python offre diverses méthodes pour résoudre un problème, et le programmeur trouvera une forme à sa convenance selon qu'il est habitué à la programmation fonctionnelle ou itérative.

Quelques librairies

Un des points forts de Python est d'être très fourni en librairies, et ce dans le package d'origine. La page officielle de documentation Python est très bien renseignée sur ce sujet : Librairies Python.
On trouvera notamment en standard de quoi compresser (bz2, gzip, tar, zip), de quoi faire de la programmation system (module os), un module d'interface graphique (Tk) ainsi que de nombreux modules réseau (section 18 du site officiel).

On trouve aussi de très nombreuses librairies additionnelles, en voici quelques exemples.


- Ingénieurs 2000 - Informatique/Réseaux 3ème année - 2007

Valid XHTML 1.0 Strict