Introduction à l'algo. et prog.
en Python
THÈME 1:
VARIABLES, AFFECTATIONS,
ENTREES/SORTIES
2019 4 / 159
Introduction Introduction à l'algo. et prog. en Python
Notions du thème:
• Introduction :
– algorithme, programme
– Interpréteur, compilateur
• Variables et expressions
• Entrées / Sorties
2019 5 / 159
Introduction Introduction à l'algo. et prog. en Python
Compilation et interprétation
• L’ordinateur permet d’automatiser des tâches
• Mais il faut utiliser un programme
– syntaxe précise dans un langage donné lisible par l’humain
– doit être transformé en un texte lisible par la machine
(suite d’octets) → compilateur ou interpréteur
• compilateur : traduit une fois pour toute le code
source en exécutable
• interpréteur : traduit au fur et à mesure à chaque
lancement du programme interprété
• Python est un langage interprété
2019 6 / 159
Introduction Introduction à l'algo. et prog. en Python
Algorithme vs Programme
• Problème complexe: travail en 2 temps
1. Résolution du problème
en s’autorisant syntaxe approximative, fautes
d’orthographe, abréviations (et en s’aidant avant avec des
schémas) => algorithme (souvent en pseudo-code)
2. Rédaction de la solution finale
produire le programme qui permettra de faire faire ce qui
est demandé à l’ordinateur
• Notion d’algorithme est plus générale :
cuisine, protocole expérimental, indications routières…
2019 7 / 159
Introduction Introduction à l'algo. et prog. en Python
Exercice
• Donner l’algorithme pour faire une omelette
(un seul œuf)
• Préciser
– les ingrédients nécessaires,
– les ustensiles nécessaires,
– les actions à mener (dans l’ordre)
2019 8 / 159
Introduction Introduction à l'algo. et prog. en Python
Exercice 1 : faire une omelette
Algo Omelette_Elémentaire
Début
{ingrédients}
1 œuf, sel poivre, beurre
{ustensiles}
déclarations
1 saladier, une fourchette, une poêle, une spatule variables
{procédure}
Casser l’œuf dans un saladier
Saler et poivrer
Battre l’œuf à la fourchette
Dans une poêle, faire chauffer le beurre, instructions
Verser l’œuf battu dans la poêle,
Cuire doucement jusqu’à l’obtention de la texture souhaitée
(baveuse à bien cuite) commentaires
Server
Fin
2019 9 / 159
Introduction Introduction à l'algo. et prog. en Python
Programmes en Python
• Deux modes d’exécution d’un code Python
– utiliser l’interpréteur Python, instruction par
instruction, un peu à la façon d’une calculatrice
– écrire un ensemble d’instructions dans un fichier
puis on l’exécute (via un interpréteur Python)
2019 10 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Variables
• Conteneur d’information
• Identifié par un nom = un identificateur
• Ayant un « contenu »
2019 11 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Identificateurs en Python
(identificateur = nom de variable)
• Pas besoin de déclarer les variables en Python
• Suite non vide de caractères
– commençant par un lettre ou le caractère _
– contenant seulement des lettres, des chiffres et/ou le caractère _
– Ne peut pas être un mot réservé de Python
• Exemples d’identificateurs
– valides : toto, proch_val, max1, MA_VALEUR, r2d2, bb8, _mavar
– non valides : 2be, C-3PO, ma var
• Les identificateurs sont sensibles à la casse : ma_var != Ma_Var
• Conventions pour les variables en Python :
– utiliser des minuscules
– pas d’accents
2019 12 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Affectation
• Pour mémoriser une valeur dans une variable,
on fait une affectation en utilisant le signe =
• Exemples :
n = 33 ch = "bonjour"
a = 42 + 25 euro = 6.55957
• L’identificateur (à gauche de =) reçoit la valeur (à
droite du =; l’expression doit d’abord être évaluée).
• La première affectation d’une variable est aussi
appelée initialisation
2019 13 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Exemple
La valeur d’une variable peut changer
au cours de l’exécution d’un programme
La valeur antérieure est perdue.
2019 14 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Affectation vs Condition en Python
• Le signe “=” sert seulement à faire une affectation.
• Pour savoir si 2 nombres sont égaux, on utilise “==”
Exemples :
>>> a = 6
>>> a
6
>>> b = 9
>>> a == b
False
2019 15 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Notion de typage
• Les valeurs des variables sont de nature différente
– entier n = 33
– réel a = 42 + 25
– chaîne de caractères euro = 6.55957
ch = "bonjour"
• En programmation, on parle de type
• Selon les langages de programme, le type des variables
– est déclaré dans le programme : typage statique
– est déterminé par le compilateur/interprète : type dynamique
• En Python, le typage est dynamique
– Pour connaître le type d’une variable: type(ma_var)
2019 16 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Exemples
>>> a = 17
>>> type(a)
<class ’int’>
>>> a = ‘‘salut’’
>>> type(a)
<class ’str’>
>>> a = 3.14
>>> type(a)
<class ’float’>
>>> type(21==7*3)
<class ’bool’>
2019 17 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Expression
• C’est une formule qui peut être évaluée
• Exemples :
42 + 2 * 5.3
3*2.0 - 5
"bonjour"
20 / 3
• Expression : des opérandes et des opérateurs.
• Les opérateurs que l’on peut utiliser dépendent du type des
valeurs qu’on manipule
• Une expression qui ne peut prendre que les valeurs
True ou False est appelée expression booléenne
2019 18 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Quelques opérateurs
• arithmétiques (sur des nombres) :
§ +, -, * → classique
§ ** → puissance
§ / → division en gardant les décimales
§ % → modulo: reste de la division euclidienne
§ // → division entière : tronque les décimales
• de comparaison (résultat booléen) :
§ == → test "est égal?"
§ != → test "est différent ?"
§ < , > → strictement plus petit, strictement plus grand
§ <=, >= → inférieur ou égal, supérieur ou égal
• logiques (entre des booléens, résultat booléen) : or, and, not
2019 19 / 159
Variables et expressions Introduction à l'algo. et prog. en Python
Exercice
Quelle est la réponse de l’interpréteur après chaque expression?
>>> 2 + 3
>>> 2*3
>>> 2**3
>>> 20/3
>>> 20//3
>>> 20%3
>>> 2 > 8
>>> (2 <= 8) and (8 < 15)
>>> 2 <= 8 < 15
>>> (x % 2 == 0) or (x >= 0)
2019 20 / 159
Entrées/Sorties Introduction à l'algo. et prog. en Python
Entrées / Sorties
• On a généralement besoin de pouvoir interagir
avec un programme :
• pour lui fournir les données à traiter,
par exemple au clavier : entrées
• pour pouvoir connaître le résultat d’exécution
ou pour que le programme puisse écrire ce
qu’il attend de l’utilisateur,
par exemple, texte écrit à l’écran : sorties
2019 21 / 159
Entrées/Sorties Introduction à l'algo. et prog. en Python
Les entrées : fonction input()
• A l’exécution, l’ordinateur :
– interrompt l’exécution du programme
– affiche éventuellement un message à l’écran
– attend que l’utilisateur entre une donnée au
clavier et appuie Entrée.
• C’est une saisie en mode texte
– valeur saisie vue comme une chaîne de caractères
– on peut ensuite changer le type
2019 22 / 159
Entrées/Sorties Introduction à l'algo. et prog. en Python
Les entrées
>>> texte = input()
123
>>> texte + 1 # provoque une erreur
>>> val = int(texte)
>>> val + 1 # ok
124
>>> x = float(input("Entrez un nombre :"))
Entrez un nombre :
12.3
>>> x + 2
14.3
2019 23 / 159
Entrées/Sorties Introduction à l'algo. et prog. en Python
Les sorties : la fonction print()
• affiche la représentation textuelle de n’importe quel nombre
de valeurs fournies entre les parenthèses et séparées par des
virgules
• à l’affichage, ces valeurs sont séparées par un espace
• l’ensemble se termine par un retour à la ligne
• ces deux prop. sont modifiables en utilisant sep et/ou end,
exemple:
print(3, 5, "ok", sep="-", end=".")
Affichage: 3-5-ok.
• Possibilité d’insérer
– des sauts de ligne en utilisant \n et
– des tabulations avec \t
2019 24 / 159
Entrées/Sorties Introduction à l'algo. et prog. en Python
Exemples de sorties
>>> a = 20
>>> b = 13
>>> print("La somme de", a, "et", b, "vaut",
a+b, ".")
La somme de 20 et 13 vaut 33.
>>> print(a,b,sep= ";")
20;13
>>> print("a=",a, "b=",b, sep="\n")
a=
20
b=
13
2019 25 / 159
Introduction à l'algo. et prog. en Python
• Ces slides ont été réalisés par:
– Amir Charif
– Lydie Du Bousquet
– Aurélie Lagoutte
– Julie Peyre
• Leur contenu est placé sous les termes de la
licence Creative Commons CC BY-NC-SA
2019 159 / 159