Vous êtes sur la page 1sur 79

Cours : Informatique 3

Programmation en

Dr. TALE KALACHI


● MSP 2

Avoir des bases algorithmiques


Public ●

● Être motivé
Objectif

Programmer en
● google.com
● Cours de Python par
Patrick Fuchs et
Pierre Poulain
Supports
● Slides/notes de
cours
● Fiches de TD/TP
Le langage Python
➢ Langage de haut niveau (a l'opposé de C qui est
de bas niveau)
➢ Traduction en code binaire complexe ⇒ temps
➢ Facile d’écrire un programme python ⇒ temps R
➢ Faible probabilité d’y faire des fautes
➢ Maintenance grandement facilitées
➢ Portabilité garantie
Compilation et interprétation

Compilation :
Compilation et interprétation

L’interprétation :

● Aucun programme objet n’est généré


● Le logiciel interpréteur doit être utilisé chaque fois que l’on veut faire
fonctionner le programme
Compilation et interprétation

Avantages et Inconvénients
❖ l'interprétation est idéale lorsque l’on est en phase
d’apprentissage du langage, ou en cours d’expérimentation
❖ Mais lorsqu’un projet comporte des fonctionnalités
complexes qui doivent s’exécuter rapidement, la
compilation est préférable
Quand est-il du langage Python ?

❖ Le fait de disposer en permanence d’un interpréteur permet de tester


immédiatement n’importe quel petit morceau de programme.
❖ L’interprétation du bytecode n’est pas aussi rapide que celle d’un
véritable code binaire, mais elle est très satisfaisante pour de nombreux
programmes
❖ Le bytecode est portable.
Installation de Python

python.org
Devoirs à la maison

Installer la dernière version de python


sur votre système
Débuter avec Python

Python peut être utilisé de plusieurs manières différentes :

● Mode Interactif
● Création de scripts
Calculer avec Python
Calculer avec Python
Calculer avec Python
Calculer avec Python
Noms de variables et mots réservés

Variable : Zone de la mémoire de l’ordinateur dans laquelle une valeur est stockée.

Quelques règles pour les noms de variables sous Python

➢ Séquence de lettres (a → z , A → Z) et de chiffres (0 → 9),


➢ Toujours commencer par une lettre.
➢ Lettres accentuées, cédilles, espaces, caractères spéciaux ($, #, @,
etc.) sont interdits, à l’exception du caractère _ (souligné).

➢ La casse est significative


➢ Exemple : Rackel, rackel et RACKEL sont des variables différentes.
Noms de variables et mots réservés

Quelques Mots réservés


Affectation (ou assignation)

Afficher la valeur d’une variable


Afficher la valeur d’une variable avec print( )
Afficher la valeur d’une variable avec print()

Exercice :
1. Testez les lignes d’instructions suivantes. Décrivez ce qui se
passe :
>>> r , pi , pi_r = 12, 3.14159, int(3.14159)
>>> s = pi * r**2
>>> JeSuis = ("pa"+"la")*2
>>> print(s)
>>> print(type(r), type(pi), type(s), type(JeSuis))
2. Quelle est, à votre avis, l’utilité de la fonction type() ?
3. Écrivez des lignes de code python nécessaires pour échanger les
valeurs des variables r et s.
Typage des variables Python

➢ Pas nécessaire de définir le type des variables avant utilisation

➢ Une valeur assignée à un nom de variable le crée


automatiquement avec le type qui correspond au mieux à la
valeur fournie .

⇒ Le typage des variables sous Python est dynamique , par


opposition au typage statique qui est de règle par exemple
en C.
Composition
Structures de contrôle
Structures de contrôle

➢ Groupes d'instructions qui déterminent l'ordre dans lequel


les actions sont effectuées.

➢ Regroupable en trois catégories :


● les séquences d’instructions,
● les sélections,
● les répétitions.
Séquence d’instructions

❖ Désigner une série d'instructions qui se suivent.

❖ Exécution normale de la première à la dernière, sauf en


cas d’instruction conditionnelle.
Instructions conditionnelles

Instruction if
Instructions conditionnelles

L’instruction if … else
Instructions conditionnelles

L’instruction if …elif ...else


Point sur les opérateurs

opérateurs de comparaison
x == y # x est égal à y
x != y # x est différent de y
x > y # x est plus grand que y
x < y # x est plus petit que y
x >= y # x est plus grand que, ou égal à y
x <= y # x est plus petit que, ou égal à y

opérateurs logique
AND # “ET logique”
OR # “OU Logique”
Point sur les opérateurs

opérateurs de comparaison
Instructions composées – blocs d’instructions
Quelques mots sur la syntaxe Python

★ Les limites des instructions et des blocs sont définies par la mise en
page
★ Un commentaire Python commence toujours par le caractère spécial #
★ Python n’utilise pas de symboles délimiteurs pour ses blocs
d’instructions
★ Instruction composée = en-tête, double point, bloc d’instructions
indentées
★ Plusieurs fonctions prédéfinies sur python : type(), int(),
print() …
Quelques mots sur la syntaxe Python
Instructions répétitives
Répétitions en boucle – l’instruction while
Instructions répétitives
Exercices
1. Écrivez un programme qui affiche les 20 premiers termes de la table de
multiplication par 7.
2. Écrivez un programme qui affiche une table de conversion de sommes
d’argent exprimées en euros, en FCFA. La progression des sommes de
la table sera «géométrique», comme dans l’exemple ci-dessous :
1 euro(s) = 652,67 FCFA
2 euro(s) = 1305.34 FCFA
4 euro(s) = 2610.68 FCFA
8 euro(s) = 5221.36 FCFA
etc. (s’arrêter à 16384 euros.)
3. Écrivez un programme qui affiche une suite de 12 nombres dont chaque
terme soit égal au triple du terme précédent.
Point sur la création de script

❏ Choisir un éditeur de texte quelconque (Kate , Gedit , Geany ,


Scite ... sous Linux, Edit sous MS - DOS , Wordpad sous
Windows , ou encore l’éditeur incorporé dans IDLE ou
PythonWin )
❏ Ecrire un script et sauvegarder avec l’extension .py
❏ Pour tester le programme, lancer l’interpréteur Python en lui
fournissant (comme argument) le nom du fichier qui contient le
script.
Instructions répétitives
Boucle for
Instructions répétitives
break et continue

Permettent de modifier le comportement d’une boucle (for ou while) avec un test.

L’instruction break stoppe la boucle.


Instructions répétitives
break et continue

Permettent de modifier le comportement d’une boucle (for ou while) avec un test.

L’instruction continue saute à l’itération suivante, sans exécuter la suite du


bloc d’instructions de la boucle.
Structures de données
Structures de données
Les listes
Une liste (souvent appelée tableau dans d’autres langages de programmation)
est une séquence modifiable de données ordonnées. Cela signifie que chaque
élément de la liste est associé à une position (un index). Le premier élément
d’une liste possède l’index 0 et le dernier élément possède l’index n - 1 pour
une liste contenant n éléments.

Creation de listes
Structures de données
Creation de listes

Accéder aux éléments

NB: On peut utiliser un index négatif. Cela


signifie que l’on souhaite partir de la fin de
la liste. Ainsi le dernier élément d’une liste
est aussi accessible avec l’index -1.
Structures de données
Operations sur les listes

Tout comme les chaînes de caractères, les listes supportent l’opérateur +


de concaténation, ainsi que l’opérateur * pour la duplication :

L’opérateur “+” est très pratique pour concaténer deux listes. Vous pouvez aussi
utiliser la méthode .append() lorsque vous souhaitez ajouter un seul élément à
la fin d’une liste.
Tranche de liste

Un autre avantage des listes est la possibilité de sélectionner une partie


d’une liste en utilisant un indiçage construit sur le modèle [m:n+1] pour
récupérer tous les éléments entre m et n+1 (de l’élément m inclus à l’élément
n+1 exclu). On dit alors qu’on récupère une tranche de la liste, par exemple :
Tranche de liste

On peut aussi préciser le pas en ajoutant un symbole deux-points


supplémentaire et en indiquant le pas par un entier selon le modèle :
liste[début:fin:pas]
Structures de données
Fonction len()

Les fonctions range() et list()

range() est une fonction spéciale en Python qui génère des nombres
entiers compris dans un intervalle. Lorsqu’elle est utilisée en combinaison
avec la fonction list(), on obtient une liste d’entiers. Par exemple :
Structures de données
Les fonctions range() et list()

Dans l’exemple ci-dessus, la fonction range() a pris un argument, mais


elle peut également prendre deux ou trois arguments :

Exercice : Répondez à la question suivante en une seule commande. Combien y


a-t-il de nombres pairs dans l’intervalle [2, 10000] inclus ?
Dictionnaires

Les dictionnaires sont des collections non ordonnées d’objets, c’est-à-dire


qu’il n’y a pas de notion d’ordre (i.e. pas d’indice). On accède aux valeurs
d’un dictionnaire par des clés. Regardez l’exemple suivant :

On peut aussi initialiser toutes les clés et les valeurs d’un dictionnaire en
une seule opération :
Dictionnaires

Itération sur les clés

Méthodes .keys(), .values() et .items()


Dictionnaires

Les mentions dict_keys et dict_values indiquent que nous avons à


faire à des objets un peu particuliers. Ils ne sont pas indexables
(ani2.keys()[0] renverra une erreur). Si besoin, nous pouvons les
transformer en liste avec la fonction list() :
Dictionnaires

méthode .items()

Non indexable mais il est itérable


Dictionnaires

Existence d’une clé


Pour vérifier si une clé existe dans un dictionnaire, on peut utiliser le test
d’appartenance avec l’instruction in qui renvoie un booléen :
Dictionnaires

Liste de dictionnaires
En créant une liste de dictionnaires qui possèdent les mêmes clés, on
obtient une structure qui ressemble à une base de données :
Dictionnaires

Fonction dict()
La fonction dict() va convertir l’argument qui lui est passé en
dictionnaire. Toutefois, l’argument qui lui est passé doit avoir une forme
particulière : un objet séquentiel contenant d’autres objets séquentiels
de 2 éléments. Par exemple, une liste de listes de 2 éléments :
Tuples
Définition

Les tuples (« n-uplets » en français) correspondent aux listes à la


différence qu’ils sont non modifiables. Pratiquement, ils utilisent les
parenthèses au lieu des crochets :
Tuples

L’affectation et l’indiçage fonctionnent comme avec les listes. Mais si on


essaie de modifier un des éléments du tuple, Python renvoie un message
d’erreur. Si vous voulez ajouter un élément (ou le modifier), vous devez
créer un autre tuple :

Pour utiliser un tuple d’un seul élément, vous devez utiliser une syntaxe avec
une virgule (element,), ceci pour éviter une ambiguïté avec une simple
expression.
Les ensembles

Un ensemble en Python (Python set) est une collection non ordonnée et


non indexée. En Python, les ensembles sont écrits avec des accolades
{....}.
Création de fonctions
Les fonctions
Définition

Une fonction est un bloc de code avec un nom. Elle correspond à un


ensemble d’instructions créées pour effectuer une tâche précise,
regroupées ensemble et qu’on va pouvoir exécuter autant de fois qu’on le
souhaite en “l’appelant” via son nom.
Les fonctions
Création d’une fonction

Pour définir une fonction, Python utilise le mot-clé def. Si on souhaite que
la fonction renvoie quelque chose, il faut par la suite utiliser le mot-clé
return. Par exemple :

Notez que la syntaxe de def utilise les


deux-points comme les boucles for
et while ainsi que les tests if, un
bloc d’instructions est donc attendu.
L’indentation de ce bloc d’instructions
(qu’on appelle le corps de la fonction)
est obligatoire.
Les fonctions
Création d’une fonction

Pour définir une fonction, Python utilise le mot-clé def. Si on souhaite que
la fonction renvoie quelque chose, il faut par la suite utiliser le mot-clé
return. Par exemple :

Notez que la syntaxe de def utilise les


deux-points comme les boucles for
et while ainsi que les tests if, un
bloc d’instructions est donc attendu.
L’indentation de ce bloc d’instructions
(qu’on appelle le corps de la fonction)
est obligatoire.
Les fonctions
Les fonctions
Les fichiers
Lecture dans un fichier
Méthode .readlines()
Créez un fichier dans un éditeur de texte que vous enregistrerez dans votre
répertoire courant avec le nom matiere.txt et le contenu suivant :
Lecture dans un fichier
Méthode .readlines()
Testez le code suivant dans l’interpréteur Python :
Lecture dans un fichier
Méthode .readlines()
Remarque :
➢ open() ouvre le fichier matiere.txt en lecture seule
➢ open("matiere.txt", "r") suppose que le fichier matiere.txt est dans le
répertoire depuis lequel l’interpréteur Python a été lancé. Si ce n’est pas le cas, il
faut préciser le chemin d’accès au fichier. Par exemple,
/home/pierre/matiere.txt pour Linux ou Mac OS X ou
C:\Users\pierre\matiere.txt pour Windows.
➢ Nous avons utilisé la syntaxe objet.méthode(). Ici la méthode .readlines()
agit sur l’objet filin en déplaçant le curseur de lecture du début à la fin du fichier,
puis elle renvoie une liste contenant toutes les lignes du fichier.
➢ .close() ferme le fichier.
Lecture dans un fichier : Méthode .readlines()

Testez ce nouveau code :


Lecture dans un fichier : Méthode .readlines()

Remarques
➢ Chaque élément de la liste lignes est une chaîne de caractères.
➢ Chaque élément de la liste lignes se termine par le caractère \n. Ce
caractère un peu particulier correspond au « saut de ligne 1 » qui permet de
passer d’une ligne à la suivante. Ceci est codé par un caractère spécial que
l’on représente par \n. Vous pourrez parfois rencontrer également la
notation octale \012.
➢ Par défaut, l’instruction print() affiche quelque chose puis revient à la
ligne. Ce retour à la ligne dû à print() se cumule alors avec celui de la fin
de ligne (\n) de chaque ligne du fichier et donne l’impression qu’une ligne
est sautée à chaque fois.
Lecture dans un fichier
le mot-clé with
Il permet d’ouvrir et de fermer un fichier de manière efficace. Si pour une raison
ou une autre l’ouverture ou la lecture du fichier conduit à une erreur, l’utilisation
de with garantit la bonne fermeture du fichier.

Une fois sorti du bloc d’indentation de l’instruction with, Python fermera automatiquement le fichier. Vous n’avez donc plus
besoin d’utiliser la méthode .close().
Lecture dans un fichier
Méthode .read()

la méthode .read() lit tout le contenu d'un fichier et renvoie une chaîne de
caractères unique.
Lecture dans un fichier
Méthode .readline()

La méthode .readline() (sans s à la fin) lit une ligne d’un fichier et la


renvoie sous forme de chaîne de caractères. À chaque nouvel appel de
.readline(), la ligne suivante est renvoyée. Associée à la boucle while, cette
méthode permet de lire un fichier ligne par ligne.
Lecture dans un fichier

Itérations directe sur le fichier


Écriture dans un fichier

Écriture dans un fichier

❏ .write() s’applique sur l’objet filout.


❏ Notez qu’à chaque utilisation de la méthode .write(), celle-ci nous affiche le nombre
d’octets (équivalent au nombre de caractères) écrits dans le fichier.
❏ Valable uniquement dans l’interpréteur,
Écriture dans un fichier

Écriture dans un fichier

❏ .write() s’applique sur l’objet filout.


❏ Notez qu’à chaque utilisation de la méthode .write(), celle-ci nous affiche le nombre
d’octets (équivalent au nombre de caractères) écrits dans le fichier.
❏ Valable uniquement dans l’interpréteur,
❏ Si nous ouvrons le fichier absent.txt avec un éditeur de texte, voici ce que nous
obtenons :
Écriture dans un fichier

Amelioration (Ajout du caractere fin de ligne \n )


Écriture dans un fichier

Ouvrir plusieurs fichiers avec l’instruction with

Remarque : Les nombres dans un fichier sont considérés comme


des chaînes de caractères par la méthode .readlines(). Par
conséquent, il faut les convertir (en entier ou en float) si on veut y
effectuer des opérations numériques.
Exercices :

1- Le fichier notes.txt contient les notes obtenues par des étudiants pour le cours de
Python. Chaque ligne du fichier ne contient qu'une note.

Téléchargez le fichier notes.txt et enregistrez-le dans votre répertoire de travail.

Créez un script Python qui lit chaque ligne de ce fichier, extrait les notes sous forme de
float et les stocke dans une liste.

Terminez le script en calculant et affichant la moyenne des notes avec deux décimales.

2 - Créez un script Python qui lit chaque ligne de ce fichier, extrait les notes sous forme de
float et les stocke dans une liste.

Le script réécrira ensuite les notes dans le fichier notes2.txt avec une note par ligne
suivie de « recalé » si la note est inférieure à 10 et « admis » si la note est supérieure ou
égale à 10. Toutes les notes seront écrites avec une décimale.

Vous aimerez peut-être aussi