Aller au contenu

Chp A. Premiers pas avec python

Le contenu de ce chapitre est fortement inspiré de l'excellent livre d'Al Sweigart Invent Your Own Computer Games with Python et adapté à notre propos.

Les sujets couverts dans ce chapitre

  • Le shell interactif et la fenêtre de script
  • Les entiers, les flottants, les chaînes de caractères (et quelques opérations sur ces types)
  • Les instructions et les expressions
  • Les valeurs, les opérateurs et l'évaluation d'expressions
  • Les messages d'erreur
  • Les variables, les affectations et l'écrasement de variables
  • Les fonctions print et input
  • Les commentaires

I. Shell interactif et calculatrice python

Pour comprendre le fonctionnement de python, on va commencer par utiliser le shell interactif (appelé aussi en français la console). Saisir dans la console python ci dessous des opérations mathématiques simples comme sur votre calculatrice. Par exemple, 2+3 et valider avec la touche ENTER.

Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Vous pouvez constater que python est capable de faire des calculs simples. Nous n'appellerons pas cela un programme mais plutôt une expression. On reviendra sur ce terme important juste un peu plus bas. En attendant, on peut analyser que l'expression précédente 2+3 est constituée de 2 valeurs (2 et 3) et d'un opérateur (ici +).

On peut déjà évoquer que les valeurs peuvent être des nombres entiers (integers en anglais) ou décimaux, que l'on nomme en informatique nombres à virgule flottante (floating point number en anglais), ou tout simplement nombres flottants. On reviendra sur cette notion plus tard dans l'année. On peut déjà retenir qu'il y a d'autres types de valeurs possibles, on en verra tout au long de l'année...

Les opérateurs usuels disponibles :

À retenir : les opérateurs pour calculer en python

  • + - * / : les 4 opérations usuelles
  • //: le quotient de la division (ex : 7 // 3 donne 2)
  • % : le reste de la division (ex : 7 // 3 donne 1)
  • ** : puissance (comme ^ sur les calculatrices)

Exercice

Q1. Tester les diverses expressions avec les opérateurs précédents dans le shell interactif ci-dessus.

Q2. Taper une expression permettant de calculer le résultat de l'opération suivante (penser aux parenthèses, vous devriez trouver environ -3.78):

\[2\times\dfrac{\dfrac{7}{2}+1}{\dfrac{3}{4}-5}-\dfrac{5}{3}\]

Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

II. Expressions et instructions

  • On appellera instruction, un ensemble de caractères que l'on peut taper dans le shell et qui est interprété par python : c'est une ligne de code ! Parmi les instructions, on trouve des expressions (comme 2+3).

  • Une expression est une instruction particulière constituée d'une ou plusieurs valeurs articulées autours d'éventuels opérateurs, et qui renvoie une valeur. On verra un peu plus bas qu'une valeur au sens informatique n'est pas forcément un nombre, mais peut aussi être par exemple une chaîne de caractères (un texte). Évaluer une expression signifie que l'on remplace l'expression par sa valeur.

Instruction vs Expression

Il est important de bien comprendre la différence entre une instruction et une expression. On verra ci-dessous des instructions qui ne sont pas des expressions !

Dans le shell, lorsque l'on saisit une instruction, en validant la ligne par la touche ENTER, python essaye de l'évaluer. Si c'est une expression correcte il affiche sa valeur. Si l'instruction ne renvoie rien, l'affichage restera vide, et si l'expression n'est pas correcte, python renverra un message d'erreur du style:

>>> 5+
Traceback (most recent call last):
  File "<console>", line 1
    5+
     ^
SyntaxError: incomplete input

Il est important de bien lire les messages d'erreur, car ils sont très explicites et vous aideront à comprendre ce qui ne va pas dans votre code.

Ici on comprend que c'est une erreur de syntaxe (souvent les plus faciles à corriger) car l'instruction 5+ n'est pas complète.

III. Variables et affectations

Dans un programme il est fréquent de vouloir stocker une valeur (le résultat d'une expression par exemple) pour pouvoir l'utiliser plus tard. Pour cela on utilise les variables. On peut imaginer une variable comme une boîte dans laquelle on range une valeur.

Par exemple pour stocker la valeur 15 dans une variable nommée spamon tape spam = 15. On parle ici d'une affectation. On peut ensuite utiliser cette variable dans une expression, par exemple spam + 2 renverra la valeur 17:

>>> spam = 15 # on affecte la valeur 15 à la variable spam
>>> spam + 2 # on utilise la variable spam dans une expression
17

Remarque : noter que tout ce qui se trouve après le signe # est un commentaire. Il n'est pas interprété par python et sert uniquement à expliquer le code pour les humains.

Affectation

  • Une affectation est une instruction, pas une expression ! En effet, l'instruction spam = 15 ne renvoie pas de valeur, elle ne fait que stocker la valeur 15 dans la variable spam. On peut le vérifier en tapant spam dans le shell, qui affichera la valeur 15.
  • Noter le cheminement de l'affectation : le nom de la variable est à gauche du signe = et l'expression à droite. L'expression est évaluée est c'est sa valeur qui est stockée dans la variable. On retiendra que les variables stockent des valeurs et non des expressions.

Pour remplacer (ou écraser) la valeur d'une variable, il suffit de faire une nouvelle affectation. Par exemple, si on tape spam = 20, la variable spam contiendra désormais la valeur 20. On peut vérifier en tapant spam dans le shell :

>>> spam = 15 # on affecte la valeur 15 à la variable spam
>>> spam + 2 # on utilise la variable spam dans une expression
17
>>> spam = 20 # on écrase la valeur de spam
>>> spam + 2 # on utilise la variable spam dans une expression
22

Exercice

Q3. Créer deux variables, nommées recettes et depenses, et affecter à recettes la valeur 1000 et à depenses la valeur 800. Puis créer une troisième variable nommée benefice qui contiendra la différence entre recettes et depenses. Afficher la valeur de benefice dans le shell (Noter au passage que l'on évite autant que possible d'utiliser des accents dans les noms de variables, car cela peut poser des problèmes de compatibilité avec certains systèmes ou langages).

Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

IV. Les chaînes de caractères (strings en anglais)

En python, les valeurs ne sont pas forcément numériques, on peut aussi par exemple manipuler des chaînes de caractères (ou strings en anglais). Une chaîne de caractères est une suite de caractères (lettres, chiffres, symboles...) entourée de guillemets simples ou doubles. Par exemple, 'Bonjour' ou "bonjour" est une chaîne de caractères.

>>> spam = "Bonjour" # on affecte une chaîne à la variable spam
>>> spam # on affiche la valeur de la variable
'Bonjour'

On retravaillera plus tard sur les chaînes de caractères, mais on peut déjà voir ce qu'il se passe si on essaye un opérateur arithmétique sur une chaîne de caractères. Taper dans le shell ci-dessous 'Hello' + 'world' et valider (On parle de concaténation ) :

Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Strings et Integers sont des types de valeurs différents. Toutes les valeurs ont un type, qui détermine comment elles peuvent être utilisées.

V. La fenêtre de script

Jusqu'à présent nous avons tapé des instructions les unes après les autres dans le shell interactif. C'est bien pour faire des tests rapides, mais ce n'est pas pratique pour écrire un programme complet. Pour cela, on utilise une fenêtre de script (ou éditeur de texte). Dans cette fenêtre, on peut écrire plusieurs lignes de code, que l'on peut ensuite exécuter d'un coup.

Écrivons notre premier programme python :

Premier programme python

La partie supérieure (celle avec les chiffres) de la fenêtre ci-dessous est la fenêtre de script. On y a déjà saisi le code de notre premier programme python.

Q4. Exécutez-le en cliquant sur bouton en forme de triangle.

Q5. Modifier le programme pour qu'il demande aussi l'âge de la personne et affiche un message personnalisé.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Dans ce programme:

  • on a utilisé la fonction print pour afficher le résultat d'une expression dans le shell. Cette fonction print est une fonction intégrée de python, on verra plus loin que l'on peut créer ses propres fonctions.

  • on a aussi utilisé la fonction intégrée input pour demander à l'utilisateur de saisir son nom. Cette fonction attend que l'utilisateur tape quelque chose et appuie sur ENTER, puis renvoie la chaîne de caractères saisie (même si l'on tape des chiffres, la variable myName contiendra une chaîne de caractère).

  • Remarquez aussi l'utilisation de la concaténation de chaines de caractères avec l'opérateur + en ligne 6, pour afficher un message personnalisé.

VI. Conclusion et bilan sur l'environnement de travail

Conclusion

Maintenant que nous avons fait nos premiers pas avec python, en découvrant la notion d'instruction et d'expression, les variables et quelques types, le shell interactif et la fenêtre de script, nous allons pouvoir aborder des notions plus avancées comme les conditions, les boucles, les fonctions, etc. dans les prochains chapitres.

Pour accéder à une double fenêtre script+shell directement en ligne, sans aucune installation, vous pouvez utiliser le site Basthon en choisissant le bouton console. Vous aurez la fenêtre de script à gauche et le shell interactif à droite.

le shell fenêtre interactive

VII. TD

Faire le TD TDA1 : Guess the number qui vous a été distribué en version papier...

Énoncé et Correction