Premières instructions

Dans votre éditeur de script, recopiez et exécutez l'instruction suivante:

print('bonjour')

print('bonjour') est une instruction qui ordonne à l'interpréteur d'afficher dans la fenêtre d'exécution le message 'bonjour'. L'interpréteur ne comprend pas le français bien sûr, il se contente d'afficher à l'identique le texte qui lui est donné en paramètre. Comme on le verra plus en détail dans une prochaine section, un texte s'écrit entre guillemets. Si les guillemets ne sont pas écrits, cela génère un message d'erreur

exemple 1

L'exemple 1 montre que les deux types de guillemets conviennent. Par contre, si les guillemets sont absents, l'interpréteur ne reconnait pas qu'il s'agit d'un texte et cherche une variable nommée bonjour. Ne la trouvant pas, il communique que la variable bonjour n'est pas définie.

Un script est une succession d'instructions qui sont exécutées dans l'ordre, de la première ligne à la dernière ligne utilisée. Le script précédent comporte 3 lignes. Les lignes sont numérotées dans la plupart des éditeurs, ce qui permet de s'y retrouver plus facilement. Par ailleurs, lorsqu'un message d'erreur surgit, l'interpréteur mentionne le numéro de la ligne qui pose problème (line 4 dans l'exemple 1). Il est intéressant de noter qu'on peut laisser des lignes inutilisées si on le souhaite (ligne 1 dans l'exemple 1)

Comme on vient de le deviner, l'instruction print accepte comme argument un texte ou bien le nom d'une variable

exemple 2

exemple 2

Dans l'exemple 2, la variable nommée mot contient le texte 'bonsoir'. L'instruction print(mot) affiche le contenu de la variable mot précédemment définie. Par contre, l'instruction print('mot') affiche le texte 'mot'

L'exemple 2 utilise une instruction nouvelle pour nous: le symbole égal. Cette instruction s'appelle une affectation ou encore une assignation. Dans cet exemple, lorsqu'il exécute la ligne 1 du script, l'interpréteur crée une variable, l'identifie par un nom (ici mot) et la remplit par le texte 'bonsoir', son contenu. Une affectation n'est pas une instruction symétrique, comme le laisse malheureusement penser l'utilisation du symbole =

On utilise souvent le schéma suivant pour illustrer son fonctionnement variable mot <---- 'bonsoir'

exemple 3

L'assignation n'est pas symétrique: le nom de la variable est à gauche, son contenu à droite du symbole =

Ne pas respecter cette règle génère une erreur de syntaxe

exemple 4

L'instruction print peut également afficher des nombres

Python sait gérer des instructions composées, c'est à dire une instruction qui contient au moins une autre instruction

exemple 5

L'opérateur + permet d'additionner deux nombres ou de juxtaposer deux mots

A la ligne 1 de l'exemple 5, l'interpréteur commence par effectuer l'opération numérique puis il affiche le résultat

A la ligne 2, il commence par effectuer l'opération sur les mots puis il assigne le résultat à la variable nommée T

A la ligne 3, il commence par effectuer l'opération puis il réalise l'affichage

Il est aussi possible d'effectuer des affectations multiples et des affichages multiples avec une seule instruction

Au niveau de la syntaxe, il faut séparer les éléments par une virgule

exemple 6

La ligne 1 est une affectation multiple: a prend la valeur 12 et b prend la valeur 30. Un seul symbole = est nécessaire

La ligne 2 est une affectation simple

La ligne 3 est un affichage multiple. Les différents éléments (variables et textes) sont affichés successivement de gauche à droite.

Il est temps de passer à une troisième instruction qui vous permettra d'interagir avec l'utilisateur de votre programme: l'instruction input()

input() permet d'assigner le contenu d'un texte saisi au clavier dans une variable. Son contenu varie donc selon ce qui sera saisi au clavier lors de l'exécution et le programmeur ne connait donc pas la valeur de ce contenu.

exemple 7

Recopiez le code de l'exemple 7 et exécutez-le. Lorsque l'interpréteur arrive à la ligne 2, il attend que l'utilisateur saisisse son prénom au clavier. Une fois que ce dernier appuie sur la touche 'entrée', le prénom est affecté à la variable p

L'instruction input() renvoie toujours un texte. Même lorsque l'utilisateur souhaite saisir un nombre au clavier, l'instruction considère le contenu comme une suite de caractères sans faire de différence entre un caractère numérique ou un caractère littéral

exemple 8

Dans l'exemple 8, à la ligne 3, on demande à l'ordinateur d'effectuer l'opération age +1. Pour l'interpréteur python cela est impossible car age est un texte alors que 1 est un nombre. Le message d'erreur est clair à ce sujet: python sait juxtaposer deux textes (str) ensemble, mais il ne peut pas le faire entre un texte et une valeur numérique entière (int)

exemple 8 corrigé

Pour corriger ce problème, il est nécessaire de transformer le texte saisi au clavier en un nombre entier. C'est ce que l'on fait à l'aide de l'instruction composée int(input()).

Désormais le script fonctionne car la variable age contient bien un nombre entier

Nous reviendrons dans un chapitre ultérieur sur les différences entre un texte ou un nombre et sur les difficultés que leur confusion peut générer.

Sachez pour l'heure que l'instruction int(input()) attend de manière implicite que l'utilisateur saisisse un nombre entier au clavier. Le cas échéant, une erreur apparaitra lors de l'exécution du script

exemple 9

La réponse saisie au clavier, '17 ans' n'est pas un texte uniquement composé de caractères numériques. Cela rend impossible l'appel de l'instruction int() et cela génère un message d'erreur lors de l'exécution.

Pour information, le texte '17 ans' comporte 6 caractères: les deux premiers sont des caractères numériques, les quatre autres sont littéraux (espace compris)

EXERCICES

Exercice 1: A l'aide de l'instruction input(), saisir le nom de la ville où habite l'utilisateur puis afficher le message "Quelle chance ! ....... est une ville magnifique", en remplaçant ....... par le nom de la ville

Exercice 2: A l'aide de l'instruction input(), saisir un nombre entier au clavier puis afficher le message "son double vaut......", en remplaçant .... par la bonne valeur

Correction exercice 1

# un script possible

print('dans quelle ville habites-tu ?')

ville = input()

print('Quelle chance !',ville,' est une ville magnifique')


Correction exercice 2

# un script possible

print('donner un nombre entier :')

n = int(input())

print('son double vaut',n+n)


# un autre script possible

print('donner un nombre entier :')

n = int(input())*2

print('son double vaut',n)

# il est intéressant de noter ici que la ligne 3 est une instruction multiple: dans l'ordre, on exécute l'instruction input(), on convertit le texte saisi en un entier, on multiplie cet entier par 2 puis on assigne le résultat à la variable n

Les différents types d'erreurs

A ce stade, vous avez probablement déjà commis plusieurs erreurs soit en recopiant des scripts soit en programmant les vôtres.

Il est important de passer du temps à analyser les problèmes rencontrés et à les comprendre. C'est une des clés de votre réussite

Distinguons d'emblée les trois types d'erreurs les plus courantes:


  • L'erreur de syntaxe

L'interpréteur python n'exécute le programme qu'à la seule condition que l'intégralité du code respecte la syntaxe du langage. Faites une seule erreur de syntaxe et vous obtiendrez un message d'erreur. On appelle erreur de syntaxe le fait de ne pas avoir respecté les règles grammaticales du langage python (orthographe des mots, ponctuations, indentations, ordre des mots...). Ces sont les erreurs les plus fastidieuses, mais avec un peu de pratique on en commet de moins en moins.

  • L'erreur lors de l'exécution

Il est possible que votre script s'exécute (ce qui signifie que la syntaxe du code est correcte) mais, pour autant, qu'un message d'erreur apparaisse lors de l'exécution. La plupart de ces erreurs proviennent des interactions de votre programme avec les interfaces d'entrées ou de sortie. (clavier, souris, écran, ouverture ou fermeture d'un fichier...). Peut-être que la personne qui exécute votre programme a réalisé une action qui n'était pas prévue, par exemple, comme saisir au clavier une valeur qui n'est pas du type attendu (voir section correspondant aux types de variables)

  • L'erreur sémantique

Une erreur sémantique est une erreur de programmation: le script s'exécute mais il ne réalise pas les tâches comme vous le souhaitiez. Cela signifie que vous avez commis une erreur de raisonnement lors de la conception de votre programme. Puisque l'ordinateur réalise exactement les instructions telles qu'elles sont écrites dans votre script, c'est que votre script est mal conçu. Vous avez commis une erreur de logique qu'il vous faudra rectifier pour atteindre l'objectif fixé.


Python est un langage qui envoie des messages d'erreurs "assez clairs". Bien que certains messages pourront vous paraitre incompréhensibles au début, il est indispensable de les lire pour déterminer où chercher l'erreur et comment intervenir. Je vous encourage à lire d'abord la dernière ligne du message car c'est souvent elle qui donne l'information la plus pertinente