Console et exécution de fichiers source

Pour exécuter du code Python, nous avons la possibilité d’écrire des fichiers sources qui seront ensuite pris en charge par l’interpréteur (qui se chargera également de les compiler). Mais nous pouvons aussi utiliser la console. Cette dernière permet d’entrer une instruction qui est immédiatement compilée et interprétée. On peut ainsi obtenir directement le résultat d’une instruction.

Avec CPython, l’interpréteur et la console sont un seul est même programme appelé python (ou python.exe pour Windows)

Important

Les systèmes MacOS et *nix ont besoin d’installer l’interpréteur Python 2 et l’interpréteur Python 3 (qui sont des programmes distincts). Dans ce cas, le programme python correspond la plupart du temps à l’interpréteur Python 2 et l’interpréteur Python 3 se nomme alors python3. Dans la suite de ce support nous considérerons que l’interpréteur Python 3 se nomme simplement python.

La console

La console Python se lance simplement avec la commande python

$ python
Python 3.6.7
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Important

Pour les exemples de ce support, nous utilisons le caractère $ pour représenter le prompteur de l’invite de commandes et ainsi indiquer qu’il s’agit de commandes à taper dans une invite de commandes (ou shell).

De même, nous utilisons la séquence de caractères >>> pour représenter le prompteur de la console et ainsi indiquer qu’il s’agit d’un exemple de code exécuté dans la console Python.

Tous les autres exemples correspondent à du code Python qui peut être placé dans un fichier source ou écrit directement sur la console.

Pour quitter la console, il suffit soit de fermer la fenêtre, soit d’utiliser le raccourci clavier Ctrl+D ou encore d’appeler les fonctions quit() ou exit().

>>> quit()
$

Il existe d’autres consoles en Python, citons :

bpython

Cette console est très pratique pour les utilisateurs occasionnels de Python ou pour les personnes en cours d’apprentissage. En effet, la console vous propose automatiquement les choix possibles au fur et à mesure que vous saisissez du code. Il faut utiliser la touche TAB pour naviguer parmi les choix proposées. De plus, la console affiche systématiquement la documentation de l’élément courant.

ipython

Cette console offre des fonctionnalités avancées comme la coloration syntaxique et la complétion de code.

Exercice en console

Essayez de taper l’instruction suivante dans la console :

>>> print("Bonjour à tout le monde")

Les fichiers sources

Un programme Python est représenté par un fichier (ou pour les programmes les moins triviaux par plusieurs fichiers) source. Un fichier source Python est un fichier texte dont le nom se termine par l’extension .py ou .pyw. La première fois que l’interpréteur Python exécute le fichier source, il va le compiler sous la forme d’une fichier avec l’extension .pyc. Les fichiers de compilation étant automatiquement gérés par l’interpréteur, ils peuvent largement être ignorés par les développeurs. D’ailleurs l’interpréteur Python 3 place les fichiers compilés dans un répertoire __pycache__ pour ne pas les mélanger avec le code source.

Pour lancer un programme à partir d’un fichier source, il suffit de taper sur une invite de commande python suivi du chemin vers le fichier source.

$ python mon_fichier_source.py

En Python 3, les fichiers source doivent être encodés en UTF-8. Normalement, un éditeur de code adapté au développement en Python 3 devrait gérer ce réglage sans l’intervention du développeur. Mais méfiance…

Pour plus de sécurité, vous pouvez ajouter en début de fichier la pseudo instruction :

# -*- coding: utf-8 -*-

Elle permet de spécifier manuellement l’encodage.

Exercice avec un fichier source

Créez le fichier source premier_programme.py et écrivez dedans :

print("Bonjour à tout le monde")

Exécutez le programme depuis une invite de commandes en vous plaçant dans le même répertoire de travail que le fichier et en tapant :

$ python premier_programme.py

Lancement en mode interactif

Lors du développement, il est parfois utile d’exécuter un fichier et ensuite de basculer en mode console pour pouvoir écrire directement du code en fonction des déclarations et des traitements réalisés par ce fichier source. On appelle cela le lancement en mode interactif. Il suffit d’ajouter le paramètre de lancement -i dans l’invite de commandes avant de préciser le chemin du fichier à exécuter.

$ python -i mon_fichier_source.py

Lancement d’un programme hors de la console

Tous les systèmes autorisent le lancement d’un programme Python en cliquant sur le fichier depuis un explorateur de fichiers. Pour cela, il faut tout de même s’assurer que le fichier possède les droits d’exécution pour l’utilisateur.

Pour les systèmes *nix, il faut ajouter au début du fichier le shebang :

#!/usr/bin/python

Lorsque vous exécutez de cette manière un fichier Python, le système ouvrira un terminal pour permettre au programme d’afficher des informations. Si votre programme Python est un programme graphique qui interagit avec l’utilisateur uniquement avec des fenêtres, vous pouvez indiquer au système que votre programme n’a pas besoin d’un terminal au démarrage en donnant à votre fichier l’extension .pyw).

Notion de bloc et d’indentation

Comme beaucoup de langages de programmation, la grammaire du langage Python décompose un programme en bloc. Mais à la différence des autres langages, Python n’utilise pas un caractère ou une instruction pour délimiter les blocs mais uniquement l’indentation du code, c’est-à-dire le nombres d’espaces avant une instruction. Cela incite les développeurs à présenter correctement le code source à la fois pour le compilateur et pour les éventuels lecteurs. En Python il est recommandé d’utiliser uniquement des espaces (pas de tabulation) et d’indiquer la présence d’un bloc par quatre espaces.

Ceci est un exemple
    Avec un premier bloc qui n'est pas du Python mais qui permet de ce
    rendre compte du principe d'indentation
        Voici un sous bloc dans le bloc

        qui peut continuer avec éventuellement des lignes vides
    Après le bloc reprend

On démarre une nouvelle instruction
Et ainsi de suite...

Les commentaires

Il est possible d’écrire des commentaires dans le code source, c’est-à-dire du texte qui sera ignoré par le compilateur. En Python les commentaires commencent par le caractère # (sauf dans une chaîne de caractères où ce caractère est considéré comme faisant partie de la chaîne).

# Ceci est un commentaire
print("Bonjour à tout le monde") # Et ceci est un autre commentaire
print("# Attention ceci n'est pas un commentaire !")