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
etinput
- 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
.
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):
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 spam
on 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 variablespam
. On peut le vérifier en tapantspam
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).
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 ) :
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é.
Dans ce programme:
-
on a utilisé la fonction
print
pour afficher le résultat d'une expression dans le shell. Cette fonctionprint
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 surENTER
, puis renvoie la chaîne de caractères saisie (même si l'on tape des chiffres, la variablemyName
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.
VII. TD
Faire le TD TDA1 : Guess the number
qui vous a été distribué en version papier...
Énoncé et Correction
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)