SlideShare une entreprise Scribd logo
Cours : Informatique 3
Dr. TALE KALACHI
Programmation en
Public
● MSP 2
● Avoir des bases algorithmiques
● Être motivé
Objectif
Programmer en
Supports
● google.com
● Cours de Python par
Patrick Fuchs et
Pierre Poulain
● 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
● Mode Interactif
● Création de scripts
Python peut être utilisé de plusieurs manières différentes :
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
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 de comparaison
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
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.
Définition
Les fonctions
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 :
Création d’une fonction
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
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 :
Création d’une fonction
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:Userspierrematiere.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.

Contenu connexe

Similaire à cour informatique niveau3 programmation en Python.pdf

Similaire à cour informatique niveau3 programmation en Python.pdf (20)

Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
 
Programming language python 2021
Programming language python 2021Programming language python 2021
Programming language python 2021
 
Python chapitre 2.pdf
Python chapitre 2.pdfPython chapitre 2.pdf
Python chapitre 2.pdf
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
TP5_2020.pdf
TP5_2020.pdfTP5_2020.pdf
TP5_2020.pdf
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
 
Introduction au langage python notion de base
Introduction au langage python notion de baseIntroduction au langage python notion de base
Introduction au langage python notion de base
 
Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
POO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdfPOO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdf
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
 

cour informatique niveau3 programmation en Python.pdf

  • 1. Cours : Informatique 3 Dr. TALE KALACHI Programmation en
  • 2. Public ● MSP 2 ● Avoir des bases algorithmiques ● Être motivé
  • 4. Supports ● google.com ● Cours de Python par Patrick Fuchs et Pierre Poulain ● Slides/notes de cours ● Fiches de TD/TP
  • 5. 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
  • 7. 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
  • 8. 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
  • 9. 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.
  • 11. Devoirs à la maison Installer la dernière version de python sur votre système
  • 12. Débuter avec Python ● Mode Interactif ● Création de scripts Python peut être utilisé de plusieurs manières différentes :
  • 17. 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.
  • 18. Noms de variables et mots réservés Quelques Mots réservés
  • 19. Affectation (ou assignation) Afficher la valeur d’une variable
  • 20. Afficher la valeur d’une variable avec print( )
  • 21. 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.
  • 22. 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.
  • 25. 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.
  • 26. 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.
  • 30. Point sur les opérateurs 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 de comparaison opérateurs logique AND # “ET logique” OR # “OU Logique”
  • 31. Point sur les opérateurs opérateurs de comparaison
  • 32. Instructions composées – blocs d’instructions
  • 33. 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() …
  • 34. Quelques mots sur la syntaxe Python
  • 35. Instructions répétitives Répétitions en boucle – l’instruction while
  • 36. 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.
  • 37. 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.
  • 39. 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.
  • 40. 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.
  • 42. 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
  • 43. 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.
  • 44. 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.
  • 45. 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 :
  • 46. 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]
  • 47. 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 :
  • 48. 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 ?
  • 49. 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 :
  • 50. Dictionnaires Itération sur les clés Méthodes .keys(), .values() et .items()
  • 51. 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() :
  • 53. 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 :
  • 54. 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 :
  • 55. 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 :
  • 56. 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 :
  • 57. 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.
  • 58. 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 {....}.
  • 60. Les fonctions 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. Définition
  • 61. Les fonctions 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 : Création d’une fonction 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.
  • 62. Les fonctions 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 : Création d’une fonction 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.
  • 66. 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 :
  • 67. Lecture dans un fichier Méthode .readlines() Testez le code suivant dans l’interpréteur Python :
  • 68. 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:Userspierrematiere.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.
  • 69. Lecture dans un fichier : Méthode .readlines() Testez ce nouveau code :
  • 70. 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.
  • 71. 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().
  • 72. 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.
  • 73. 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.
  • 74. Lecture dans un fichier Itérations directe sur le fichier
  • 75. É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,
  • 76. É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 :
  • 77. Écriture dans un fichier Amelioration (Ajout du caractere fin de ligne n )
  • 78. É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.
  • 79. 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.