Premier programme Python

Premier programme Python

Le premier programme que nous allons développé ensemble est le fameux Hello World! Voici ce qu’il donne en Python :

Cette ligne de code permet d’afficher Hello World!

  1. Sauvegarder la ligne du code ci-dessus dans fichier .py (par exemple HW.py)
  2. Executer la commande python HW.py

Exemple 1 – (mon premier programme Python se trouve sur C:):

premier programme python

En python les deux instruction sont identiques Les guillemets (simples ou doubles, Python ne faisant pas la différence) signifient que ce qui se trouve à l’intérieur est une chaîne de caractères.:

Exemple 2 :

Ce qui donne le résultat suivant:

deuxieme programme Python

Si le littéral n’est composé que de chiffres, alors il s’agit d’un nombre entier. S’il y a un point, il s’agit d’un nombre réel

 

Outils de développement pour Python

Il existe plusieurs IDE pour développer en Python (http://wiki.python.org/moin/IntegratedDevelopmentEnvironments), parmi lesquelles Eclipse et Aptana, Eric ou Spyder.

1. Eclipse et Pydev

Pour utiliser Eclipse avec Python, il faut lui ajouter un plug-in, le plus connu est le plug-in PyDev, provenant de l’IDE Python PyDev.

Il faut premièrement téléchargez Eclipse pour votre plateforme et suivez les instructions. Le lien de téléchargement est à l’adresse : https://www.eclipse.org/downloads/. Par la suite il faut installer PyDev comme un plug-in Eclipse : Help >> Install New Software >> Add et remplissez la boîte de dialogue de la manière suivante :

installer-pyDev-Python-Eclipse

Cliquez sur OK.

installer-pyDev-software-Python-Eclipse

Cochez PyDev dans la liste des logiciels et décochez Contact all update sites to find required software.

Cliquez sur Next et patientez pendant le téléchargement des packages.

installation-terminé-pydev-eclipse

Cliquez sur Next.

 

accepter la licence pydev

Acceptez la licence et cliquez sur Finish.

installation pydev

Une fois l’installation terminé, redémarrez Eclipse.

2. PyCharm

PyCharm est un IDE commercial développé par la société JetBrains. JetBrains développe de nombreux IDE spécifiques pour divers environnements de développement, Java, PHP, Objective-C, .NET, Ruby, JavaScript et bien sûr Python. existe en deux versions, une version libre et gratuite appelée Community Edition et une version complète payante Professional Edition.

PyCharm assure l’essentiel en proposant les fonctionnalités indispensables que sont la coloration syntaxique, l’autocomplétion ainsi que la détection d’erreurs ou d’avertissements. Il permet aussi d’accéder au code source d’un objet facilement ([Ctrl] + clic).

Instructions conditionnelles Python

Un bloc conditionnel est un bloc de code qui s’exécute si et seulement si l’instruction de contrôle le contenant voit sa condition respectée. Dès lors qu’un des blocs est exécuté, la suite des instructions conditionnelle est terminée.

Rien ne s’oppose à ce qu’un bloc prenne place dans une fonction, dans une méthode, dans un module, voire même dans une classe. Un bloc conditionnel peut prendre place dans une boucle, voire même dans un autre bloc conditionnel.

Instruction if

Le mot-clé if n’exécute des instructions que si une condition est remplie :

Comme déjà dit, il n’y a pas de fioritures en Python. Nous avons déjà vu qu’un bloc ne nécessite pas d’accolades et l’on voit maintenant que l’écriture d’une condition ne nécessite pas de parenthèses. L’instruction if et le bloc qui suit se suffisent à eux-mêmes.

À noter que pass peut être utilisé dans le bloc. Ceci est rare car si une fonction vide ou une classe vide est utile, une boucle conditionnelle vide ne l’est pas :

Le principe de cette instruction est de contenir une partie de code qui ne s’exécute que si la condition est analysée comme vraie.

Instruction elif

L’instruction elif n’est utilisée que si l’ensemble des instructions précédentes ont vu leurs conditions évaluées à False.

Une fois cette condition remplie, la condition liée à cette instruction est évaluée et en cas d’évaluation positive, le bloc correspondant est exécuté.

Pour s’en convaincre, il suffit de tester ce morceau de code :

La première expression n’est pas vraie, le premier bloc est exécuté et la suite d’instructions continue d’être lue. La seconde expression est vraie, le second bloc est exécuté et la suite des instructions conditionnelles de l’algorithme s’arrête alors.

Une instruction elif suit obligatoirement une instruction if et il peut y en avoir autant que nécessaire.

 Instruction else

Pour traiter distinctement le cas où une condition est respectée et celui où elle ne l’est pas, il est possible de le réaliser par deux blocs distincts :

Mais cette écriture est lourde et potentiellement génératrice d’erreurs pour des conditions complexes, en plus d’imposer de les évaluer deux fois.

L’instruction else permet alors de traiter le cas où la première condition n’est pas vraie. Voici un code équivalent à ce qui précède et à la fonction du début :

La solution est plus élégante et plus compréhensible.

Les instructions if et else peuvent traiter tous les cas possibles, mais elif apporte une simplification de l’algorithme. Voici l’algorithme de la section sur l’instruction elif réalisé sans cette instruction :

 

On voit immédiatement l’intérêt de l’instruction elif. Là encore, la troisième condition n’est pas validée.

L’instruction else peut également être utilisée en complément de elif, mais elle est forcément la dernière :

Les variables – Python

Qu’est-ce qu’une variable ?

Le contenu d’une variable est sa valeur. Il s’agit forcément d’une instance d’un objet, stockée en mémoire. Celle-ci est donc reliée à une classe. Le type de l’instance est le nom de sa classe.

Par exemple 42 est une instance de la classe int, elle est de type int :

Toute opération réalisée sur une variable l’est sur sa valeur.

Le contenant n’est rien d’autre que l’association d’un nom et d’un pointeur vers le contenu, soit la valeur associée à ce nom.

L’affectation est l’opération qui permet d’associer un contenu (opérande de droit) à un contenant (opérande de gauche) et donc d’associer un nom avec un pointeur vers une valeur.

Ainsi, l’utilisation de ce nom renvoie systématiquement la valeur associée :

L’unique moyen de supprimer cette association entre contenu et contenant est de supprimer l’association entre le nom et le pointeur :

Le contenant n’existe alors plus, et il n’est plus possible d’utiliser le nom de variable :

Le fait que le contenant n’existe plus ne signifie pas forcément que le contenu associé n’existe plus également, car si un contenant n’est associé qu’à un seul contenu, un contenu peut être associé à plusieurs contenants.

Pour savoir si les contenants pointent vers le même contenu, il faut procéder ainsi :

Voici donc un exemple ou un contenant est supprimé, mais pas le contenu :

Lorsque tous les contenants pointant vers un contenu sont supprimés, le contenu devient inaccessible dans le sens où il ne reçoit plus aucun pointeur.

Cela ne signifie pas pour autant qu’il est immédiatement supprimé, puisque cette opération est réalisée par le ramasse-miettes de la machine virtuelle de Python.

Le nommage des contenants doit suivre certaines règles qui sont en partie imposées, en partie tacites.

Tous les mots-clés (les trente instructions + None + True + False) vus au chapitre précédent ne sont pas utilisables en tant que noms de variable (erreur détectée par l’analyse lexicale) :

Une telle erreur est immédiatement détectée. Par contre, il est possible d’utiliser des mots réservés, c’est-à-dire que le langage utilise déjà :

Par contre, ce faisant, on s’expose à rencontrer des erreurs qui se produisent de manière logique. En effet, si un peu plus loin dans le code, on veut convertir un n-uplet en liste comme ceci, on aura :

Ce type d’erreur est plus insidieux, puisque non détecté lors de l’analyse lexicale étant donné que list n’est pas un mot-clé, mais seulement un mot réservé.

En effet, Python suppose que vous savez ce que vous faites et que si vous remplacez la fonction list, c’est que vous la remplacez par un équivalent et que vous le faites dans les règles de l’art.

Elle n’est pas non plus détectée par les autres mécanismes et pour cause puisque le développeur peut réellement vouloir remplacer la classe list existante par une classe personnalisée et une des forces de Python consiste justement à permettre ce genre de possibilités.

Tout repose donc sur la bonne utilisation des noms de variables par le développeur et la philosophie même de Python consiste à faire confiance au développeur et à lui donner le maximum de clés.

Sur une console, le moyen de revenir en arrière sur ce genre d’erreurs est de retourner chercher la variable depuis le module builtins :

Attention, avec Python 2, il faut procéder ainsi :

 

Installer des bibliothèques Python externes

Installer des bibliothèques Python externes avec Pip

Python est fourni piles incluses. C’est-à-dire que seul, il est capable de faire l’essentiel. Cependant, il existe certaines bibliothèques qui permettent de proposer des alternatives ou des interfaces de plus haut niveau, voire des frameworks.

Celles-ci sont bien souvent indispensables et nombre d’entre elles sont présentées ultérieurement dans ce cours.

Manipulation des bibliothéques

Pour chercher une bibliothèques tierce, vous pouvez utiliser le site suivant https://pypi.python.org/pypi ou utiliser directement votre terminal en utilisant la commande : pip search nomBibliothéque.

Exemple :

Cette ligne vous donnera une liste de bibliothèques accompagnée d’une courte description.

Installer une bibliothéque

l’installation d’une bibliothéque tierce avec pip se fait par la commande : pip install nomBibliothéque.

Exemple :

Cette ligne vous permettra d’installer une bibliothèque à sa dernière version ainsi que toutes les bibliothèques dépendantes.

Il est aussi possible de choisir la version à installer :

Ou mettre à jour la bibliothèque à une version précise :

Ou mettre à jour la bibliothèque à la dernière version :

Pour désinstaller une bibliothéque :

Et pour avoir avoir des informations sur un paquet déjà installé :

Informations sur le paquet Django

Informations sur le paquet Django

BONUS (Installation de pip)

pip est maintenant le gestionnaire de paquets de référence pour Python. Depuis la version 3.4, il est installé automatiquement avec Python.

Pour la version 3 de Python, utilisez la commande suvante :

Pour la version 2 de Python, utilisez la commande :

Si vous utilisez une version très ancienne de Python, il se peut que vous ne disposez pas de ce gestionnaire de paquets, voici comment l’installer sur Linux :

Pour les autres systemes d’exploitation, il y a des instructions à suivre sur la page suivante: https://pypi.python.org/pypi/setuptools

Installer Python

Installer Python pour Windows

Pour installer Python, il faut se rendre sur le site officiel (http://python.org/download/) afin de télécharger un installateur.

Il faut veiller à prendre la version correspondant à l’architecture de sa machine (x86 si l’on a une machine 32 bits ou x86_64 si l’on a une machine 64 bits).

Après le téléchargement, il faut lancer l’exécutable et suivre les étapes suivantes (Python 3.4 n’étant pas encore sorti) :

  • Choisir une installation pour tous les utilisateurs ou seulement pour son profil;
  • Choisir le répertoire d’installation;
  • Choisir les modules secondaires à installer;
  • La fin de l’installation prend quelques secondes.
  • Vous avez bien installé Python :).

Installer Python pour Mac

La procédure pour installer Python sous Mac OS est relativement similaire à celle pour Windows. Il faut également télécharger un installateur et le choisir en fonction de son architecture, puis suivre le déroulé des opérations.

Python est également pré-installé sur Mac et intégré à son cycle de développement parce qu’il est utilisé par certains de ces composants.

Il est cependant possible d’avoir plusieurs versions concurrentes de Python sur sa machine sans que cela ne pose problème.

Installer Python pour GNU/Linux

Les différentes distributions libres utilisent nativement Python, pour des parties sensibles. Lorsque le système est installé, il y a donc forcément Python.

La méthode la plus simple pour installer Python sur Linux est d’utiliser votre gestionnaire de paquets, ce qui peut se faire via un outil graphique, comme Synaptic pour Debian.

Il est de également possible d’installer Python par la simple ligne de commande. Par exemple pour une distribution Debian ou Ubuntu :

Installer Python par la compilation

Ceci répond à des besoins très précis, en particulier lorsqu’il s’agit d’installer sur une machine locale une ancienne version pour être compatible avec une plateforme de production.

Python n’est rien d’autre qu’un programme écrit en C. Pour compiler n’importe quelle version de Python, il faut aller télécharger le code source de la version en question (https://www.python.org/downloads/source/), puis décompresser celle-ci, se placer dans le répertoire ainsi obtenu et taper ces quelques commandes  sur le terminal de GNU/Linux :

Si vous venez d’installer la version Python 3.5 par cette méthode, vous aurez alors maintenant accès à ce programme en l’appelant ainsi, depuis votre terminal :

Par cette même méthode, vous pouvez installer les dernières versions (https://www.python.org/download/pre-releases/) de Python qui ne sont pas encore sorties (alphas ou betas), ce qui vous permet de les tester en avant-première !

Phases d’exécution d’un programme Python

1. Chargement de la machine virtuelle

La machine virtuelle Python démarre dès le lancement d’un programme Python. Elle interface le programme Python et le système d’exploitation.

2. Compilation

Lorsque l’on démarre un programme Python, ce dernier (représenté par le module principal) va être compilé, ainsi que l’ensemble des modules qu’il utilise.

La version compilée des modules est écrite dans un fichier .pyc. à chaque nouvelle exécution du script, il est vérifié que ces modules n’ont pas été modifiés, sans quoi une nouvelle compilation a lieu. Les fichiers .pyc contiennent du bytecode exploitable par la machine virtuelle. Le bytecode est indépendante de la plateforme.

Le module principal est toujours compilé systématiquement à la volée.

3. Interprétation

L’exécution à travers la machine virtuelle du programme Python peut enfin avoir lieu, c’est l’interprétation. Le bytecode est alors utilisé et produit un résultat.

Présentation de Python

QU’EST-CE QUE PYTHON ?

Python est un langage de programmation interprété, multi-paradigme et multiplateformes, de haut niveau à typage dynamique fort, doté d’une gestion automatique des ressources par ramasse-miettes et d’un système de gestion d’exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.

Le langage Python est placé sous une licence libre proche de la licence BSD, il s’agit de la licence Python Software Foundation License. Python est apparu en 1990 et possède plusieurs implémentations, dont CPython, Jython et PyPy.

Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe minimaliste, claire, simple, suffisamment proche du langage naturel pour qu’un algorithme soit compris dès la première lecture par un lecteur qui connaît l’anglais.

L’histoire de Python :

la première version du langage Python, nommée ainsi en l’honneur des Monty Python dont il est fan. Python est ainsi inspiré des langages ABC, de Modula-3 , de C et des outils Unix.

La première version rendue publique est la 0.9.0 qui est postée sur un forum Usenet en février 1991.

Caractéristiques du langage Python

  • Python est portable
  • Python est gratuit
  • Python est orienté-objet
  • Python gère ses ressources (mémoire, descripteurs de fichiers…) sans intervention du programmeur
  • Python est un langage qui continue à évoluer, soutenu par une communauté d’utilisateurs enthousisates et responsables, dont la plupart sont des supporters du logiciel libre.