3.1. Les scripts

Jusqu’à présent, tout le code a été exécuté dans le REPL car nous en sommes restés à des instructions très simples. Lorsque l’on souhaite assembler ces instructions pour construire des programmes complexes, nous allons privilégier l’écriture de scripts, stockés de manière permanentes dans des fichiers et beaucoup plus facilement modifiables.

Rappel

Un script Python est un fichier de texte avec par convention l’extension .py et contenant la séquence d’instructions à exécuter, une par ligne et dans l’ordre.

3.1.1. Un premier script

Nous allons à présent écrire notre premier script. N’importe quel éditeur de texte peut faire l’affaire, mais un logiciel spécialisé comme Visual Studio Code, IDLE ou PyCharm simplifiera grandement l’édition du code.

Créons tout d’abord un fichier que l’on nomme, par exemple, script.py, et ajoutons-y les lignes ci-dessous.

WORD = "instruction"
print("Première " + WORD + " du script")
print("Deuxième " + WORD)
print("Dernière " + WORD + " et fin du script")

Une fois le fichier enregistré, on lance le script depuis le terminal à l’aide de la commande python, en indiquant le chemin vers le script. Le programme s’exécute directement depuis le terminal et la fonction print() y affiche les résultats au fur et à mesure de ses appels.

$ python script.py
Première instruction du script
Deuxième instruction
Dernière instruction et fin du script
$

Note

Dans le REPL, la fonction print() n’est pas obligatoire. L’invite de commande affiche automatiquement le résultat des expressions que l’on y écrit. Cependant, l’exécution d’un script n’écrit rien dans la console sans que l’on ne le demande explicitement grâce à print().

Contrairement au REPL, il est ici facile d’apporter une modification au programme ! Pas besoin de réécrire les 4 lignes dans le bon ordre dans l’invite de commandes. Par exemple, modifions la valeur de la constante WORD.

WORD = "ligne"
print("Première " + WORD + " du script")
print("Deuxième " + WORD)
print("Dernière " + WORD + " et fin du script")

Le programme affichera à présent le texte ci-dessous.

Première ligne du script
Deuxième ligne
Dernière ligne et fin du script

Note

Si l’on ne doit pas modifier la valeur d’une constante durant l’exécution du programme (elle est constante), nous pouvons cependant la changer entre deux exécutions en modifiant le script.

3.1.2. Commenter les scripts

Il arrive que l’on souhaite ajouter des commentaires à nos scripts pour se rappeler du rôle d’une ligne en particulier, ou pour rendre le programme plus compréhensible par d’autres personnes qui seraient amenées à le lire. Il s’agit même d’une pratique fortement recommandée. On peut également utiliser les commentaire pour désactiver certaines instructions que l’on pourrait vouloir réactiver par la suite.

Les commentaires sont simplement préfixés par le symbole # (croisillon). Ils ne servent qu’aux programmeurs et sont ignorés par l’interprète.

# cette phrase est un commentaire
# tout ce qui suit le symbole # est un commentaire (ignoré à l'exécution)

number = 42  # déclaration d'une variable `number`

# on commente la ligne suivante pour l'ignorer (tant qu'on ne retire pas le #)
# DEBUG = True

3.1.3. Les scripts interactifs

On a parfois besoin d’une certaine interactivité de la part d’un script, sans pour autant devoir repasser en mode REPL. Pour cela, on peut utiliser la fonction input() qui permet de saisir une ligne de texte entrée par l’utilisateur et de la stocker dans une chaîne de caractères (variable de type str).

print("Quel est votre prénom ?")
name = input()  # on demande un nom à l'utilisateur et on le stocke dans une variable
print("Vous vous appelez " + name)
Quel est votre prénom ?
Alice
Vous vous appelez Alice

On peut aussi fournir une chaîne de caractères à la fonction input() afin qu’elle s’affiche directement dans la console avant la saisie (sans retour à la ligne). Ainsi, on peut réécrire plus simplement le code précédent.

name = input("Quel est votre prénom ? ")  # on affiche un message et on attend une entrée
print("Vous vous appelez " + name)
Quel est votre prénom ? Alice
Vous vous appelez Alice