2021
CT NSIMBA ZOKA Patrick
Assistant Jabin MUZIR
(Ingénieurs Concepteurs)
Introduction à la programmation avec Python
Avant-propos
En tant qu’ enseignant ayant pratiqué l’enseignement de la
programmation en parallèle avec d’autres disciplines, je crois pouvoir
affirmer qu’il s’agit là d’une forme d’apprentissage extrêmement
enrichissante pour la formation intellectuelle d’un jeune, et dont la valeur
formative est au moins égale, sinon supérieure, à celle de branches plus
classiques telles que le latin
Certains nous reprocheront que notre démarche n’est pas
suffisamment centrée sur l’algorithmique pure et dure. Nous pensons
que celle-ci est moins primordiale que par le passé. Il semble en effet
que l’apprentissage de la programmation moderne par objets nécessite
plutôt une mise en contact aussi précoce que possible de l’apprenant
avec des objets et des bibliothèques de classes préexistants. Ainsi, il
apprend très tôt à raisonner en termes d’interactions entre objets, plutôt
qu’en termes de construction de procédures, et cela l’autorise assez vite
à tirer profit de concepts avancés, tels que l’instanciation, l’héritage et le
polymorphisme.
Nous avons par ailleurs accordé une place assez importante à la
manipulation de différents types de structures de données, car nous
estimons que c’est la réflexion sur les données qui doit rester la colonne
vertébrale de tout développement logiciel.
Il existe un très grand nombre de langages de programmation,
chacun avec ses avantages et ses inconvénients. Il faut bien en choisir
un. Lorsque nous avons commencé à réfléchir à cette question, durant
notre préparation d’un curriculum pour la nouvelle option Sciences &
Informatique, nous avions personnellement accumulé une assez longue
expérience de la programmation sous Visual Basic (Microsoft).
Nous avions également expérimenté quelque peu visual Dbase
(Borland). Il était donc naturel que nous pensions d’abord exploiter l’un
ou l’autre de ces langages. Si nous souhaitions les utiliser comme outils
de base pour un apprentissage général de la programmation, ces
langages présentaient toutefois deux gros inconvénients :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
1
Introduction à la programmation avec Python
• Ils sont liés à des environnements de programmation (c’est-à-dire
des logiciels) propriétaires. Cela signifiait donc, non seulement que
l’institution scolaire désireuse de les utiliser devrait acheter une licence
de ces logiciels pour chaque poste de travail (ce qui pouvait se révéler
coûteux), mais surtout que les étudiants souhaitant utiliser leurs
compétences de programmation ailleurs qu’à l’école seraient
implicitement forcés d’acquérir eux aussi des licences, ce que nous ne
pouvions pas accepter. Un autre grave inconvénient de ces produits
propriétaires est qu’ils comportent de nombreuses « boîtes noires » dont
on ne peut connaître le contenu. Leur documentation est donc
incomplète, et leur évolution incertaine.
• Ce sont des langages spécifiquement liés au seul système
d’exploitation Windows. Ils ne sont pas « portables » sur d’autres
systèmes (Unix, Mac OS, etc.). Cela ne cadrait pas avec notre projet
pédagogique qui ambitionne d’inculquer une formation générale (et donc
diversifiée) dans laquelle les invariants de l’informatique seraient autant
que possible mis en évidence.
Nous avons alors décidé d’examiner l’offre alternative, c’est-à-dire
celle qui est proposée gratuitement dans la mouvance de l’informatique
libre. Ce que nous avons trouvé nous a enthousiasmés : non seulement
il existe dans le monde de l’Open Source des interpréteurs et des
compilateurs gratuits pour toute une série de langages, mais surtout ces
langages sont modernes, performants, portables (c’est-à-dire utilisables
sur différents systèmes d’exploitation tels que Windows, Linux, Mac OS
...), et fort bien documentés.
Ct Nsimba Zoka Patrick
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
2
Introduction à la programmation avec Python
INTRODUCTION
La programmation
La programmation est l’art d’apprendre à une machine comment
accomplir de nouvelles tâches, qu’elle n’avait jamais été capable
d’effectuer auparavant. C’est par la programmation que vous pourrez
acquérir le plus de contrôle, non seulement sur votre machine, mais
aussi peut-être sur celles des autres par l’intermédiaire des réseaux.
La programmation d’un ordinateur consiste en effet à « expliquer »
en détail à une machine ce qu’elle doit faire, en sachant d’emblée qu’elle
ne peut pas véritablement « comprendre » un langage humain, mais
seulement effectuer un traitement automatique sur des séquences de
caractères. Il s’agit la plupart du temps de convertir un souhait exprimé
à l’origine en termes « magiques », en un vrai raisonnement
parfaitement structuré et élucidé dans ses moindres détails, que l’on
appelle un algorithme.
Dans le monde de la programmation, on désigne par le terme
hacker les programmeurs chevronnés qui ont perfectionné les systèmes
d’exploitation de type Unix et mis au point les techniques de
communication qui sont à la base du développement extraordinaire de
l’Internet. Ce sont eux également qui continuent inlassablement à
produire et à améliorer les logiciels libres (Open Source).
Mais il existe aussi un autre groupe de gens que les journalistes
mal informés désignent erronément sous le nom de hackers, alors qu’ils
devraient plutôt les appeler crackers. Ces personnes se prétendent
hackers parce qu’ils veulent faire croire qu’ils sont très compétents, alors
qu’en général ils ne le sont guère.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
3
Introduction à la programmation avec Python
Ils sont cependant très nuisibles, parce qu’ils utilisent leurs
quelques connaissances pour rechercher les moindres failles des
systèmes informatiques construits par d’autres, afin d’y effectuer toutes
sortes d’opérations illicites : vol d’informations confidentielles,
escroquerie, diffusion de spam, de virus, de propagande haineuse, de
pornographie et de contrefaçons, destruction de sites web, etc.
Le langage de programmation
On appelle « langage de programmation» ou « langage
informatique » un langage destiné à décrire l'ensemble des actions
consécutives qu'un ordinateur doit exécuter. Un langage informatique est
ainsi une façon pratique pour nous (humains) de donner des instructions
à un ordinateur.
Un langage informatique est rigoureux: à chaque instruction
correspond une action du processeur. Il comporte deux grands
avantages :
Il est plus facilement compréhensible que le langage machine
Il est plus portable, c’est-à-dire qu’il peut s’adapter à des
machines de types différents.
Catégories des langages de programmation
Il existe principalement deux catégories de langage de
programmation que nous étalons ci-après.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
4
Introduction à la programmation avec Python
a) Le langage interprété
Un langage est dit interprété s’il a besoin d’un programme appelé
interpréteur pour traduire les instructions qui lui sont exposées. Un
interpréteur traduit une à une les instructions du programme, au fur et à
mesure qu’il avance jusqu’à la fin. C’est comme un interprète qui traduit
le discours d’un orateur phrase par phrase.
b) Le langage compilé
A l’opposé du langage interprété, un langage est dit compilé s’il a
besoin du compilateur pour traduire son programme en langage
machine. Et comme vous auriez pu le deviner, un compilateur traduit
tout l’ensemble d’un programme une fois pour toutes. Il génère un
fichier autonome, qui n’a plus besoin de lui pour s’exécuter. On parle
alors de fichier Exécutable.
Le langage compilé présente l’avantage de ne plus dépendre, une
fois le programme compilé, du compilateur pour s’exécuter. En plus,
étant donné que sa traduction se fait une fois pour toutes, il est plus
rapide à l’exécution. Par contre le langage compilé est moins souple que
l’interprété car à chaque fois que le fichier source (le premier que le
programmeur a écrit) est modifié, le programme doit être recompilé afin
que les modifications prennent effet.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
5
Introduction à la programmation avec Python
Niveaux des langages de programmation
En programmation, les langages peuvent se trier par 2 niveaux :
les langages de haut niveau et les langages de bas niveau.
Plus le niveau du langage est bas, plus celui-ci est proche du
matériel informatique (le C est considéré comme un langage de bas
niveau). Un développeur utilisant un langage de bas niveau devra, entre
autres, gérer la mémoire qu'il utilise. Il peut même aller jusqu'à spécifier
les registres matériels dans lesquels écrire pour faire fonctionner son
programme.
Un langage de haut niveau fait abstraction de tout cela ; il le fait
en interne, c'est-à-dire que le développeur ne voit pas toutes ces
opérations. Après, tout dépend de votre envie et de votre cahier des
charges : si vous devez développer une application interagissant
directement avec les composants, un langage de bas niveau est requis.
En revanche, si vous ne souhaitez faire que du graphisme, des calculs,
du fonctionnel, etc., un langage de haut niveau va vous permettre de
vous soustraire à beaucoup de manipulations fastidieuses.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
6
Introduction à la programmation avec Python
Chapitre 1 : Présentation du langage Python
Python est un langage portable, dynamique, extensible, gratuit,
qui permet (sans l’imposer) une approche modulaire et orientée objet de
la programmation. Python est développé depuis 1989 par Guido van
Rossum et de nombreux contributeurs bénévoles.
Détaillons un peu les principales caractéristiques de Python, plus
précisément, du langage et de ses deux implantations actuelles :
Python est portable, non seulement sur les différentes variantes d’Unix,
mais aussi sur les OS propriétaires : Mac OS, BeOS, NeXTStep, MS-DOS
et les différentes variantes de Windows. Un nouveau compilateur,
baptise JPython, est écrit en Java et génère du byte code Java.
Python est gratuit
Python convient aussi bien à des scripts d’une dizaine de lignes
qu’à des projets complexes de plusieurs dizaines de milliers de
lignes
La syntaxe de Python est très simple et, combinée à des types de
données évolués (listes, dictionnaires...), conduit à des
programmes à la fois très compacts et très lisibles.
Python est oriente-objet. Il supporte l’héritage multiple et la
surcharge des operateurs
Python est un langage qui continue à évoluer, soutenu par une
communauté d’utilisateurs enthousiastes et responsables, dont la
plupart sont des supporters du logiciel libre.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
7
Introduction à la programmation avec Python
1.1. Que doit-on avoir pour programmer en Python ?
Pour être en mesure d’installer et d’utiliser Python 3, vous devez
disposer d’un PC équipé comme suit :
Processeur Pentium (i3 ou plus) à 4 000 MHz ou plus.
Système d’exploitation : Windows, Mac Os, …
Mémoire : 4 Go ou plus.
Un disque dur disposant au minimum d’un espace libre de 10 Go.
Un écran capable d’afficher en 1 024 × 768 points ou plus.
Un lecteur de DVD-ROM, ou un outil de virtualisation de lecteur
de DVD-ROM si vous utilisez une image ISO téléchargée sur
Internet.
Mais vous avez besoin d’installer le compilateur de python (python 3
par exemple). Ainsi qu’un éditeur de texte qui vous aidera à écrire les
codes de vos programmes. Notepad++ fera l’affaire, sur Windows. Mais
nous optons pour PyCharm, un éditeur plus évolué. Vous pouvez en
choisir un autre, selon le SE utilisé ou selon votre maitrise.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
8
Introduction à la programmation avec Python
1.2. Présentation de l’environnement de développement
Ce chapitre vous permet de vous familiariser avec le langage et
son environnement de développement.
Lancement de la fenêtre d’accueil de PyCharm Community et
paramétrage d’un nouveau projet
PyCharm est un EDI (environnement de développement intégré) à
télécharger.
Une fois que vous avez cliqué sur l’icône de lancement, une fenêtre
d’accueil s’affiche devant vous. Les applications sur PyCharm sont des
projets. Et pour lancer la création d’une nouvelle application, vous devez
lancer un nouveau projet. Vous pouvez aller sur l’onglet projetcts, puis
sur New project.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
9
Introduction à la programmation avec Python
Une fois arrivé sur la fenêtre de paramétrage du projet, vous pouvez
parcourir votre ordinateur et choisir un emplacement pour pouvoir
sauvegarder le projet, puis le nommer (l’extension de fichier standard
des scripts python est .py). Avant de cliquer sur le bouton de validation.
Annulez les propositions qui s’offrent à vous, puis vous pouvez effacer
complètement tous les codes que vous trouverez dans le projet créé.
Saisissez print("salut le gens !!!") _on y reviendra ; et cliquez sur le
bouton de lancement de projet en vert tout en haut.
Le résultat s’affiche tout en bas.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
10
Introduction à la programmation avec Python
(La procédure d’ouverture d’un projet déjà créé et sauvegardé est
quasiment dans la même logique. Lorsque vous avez lancé PyCharm,
cliquez sur l’onglet Projetcs. Vous avez trois possibilités pour ouvrir un
projet :
- Au centre de la fenêtre, la liste des projets que vous avez
récemment ouverts s’affiche ; vous en choisissez un par un clic
- Vous pouvez rechercher un projet en saisissant son nom sur la
barre de recherche
- Cliquez sur le bouton « Open », parcourez l’ordinateur jusqu’à
l’emplacement où est sauvegardé votre projet.
Lancement de test d’une application
Saisir les codes de votre programme ne suffit pas. Vous devez vous
assurer que ces codes fonctionnent et répondent correctement. Pour
cela, vous devez cliquez sur bouton situé sur la barre d’outils de votre
fenêtre. Une fois visionné, vous pouvez arrêter le débogueur en cliquant
sur le bouton (Arrêter. Saisissez les instructions suivantes et lancez le
démarrage du test devant votre écran.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
11
Introduction à la programmation avec Python
Chapitre 2 : NOTIONS DE BASE DE LA CODIFICATION EN
PYTHON
Dans ce chapitre nous allons apprendre à manipuler les premières
notions de la pgogrammation notamment les variables et les opérateurs.
2.1. Les variables
Une variable représente un emplacement dans la mémoire de
l’ordinateur où on peut stocker une donnée. C’est un espace permettant
de conserver une information le temps de l’exécution du programme qui
l’utilise.
Il est plus simple de manipuler des variables plutôt que des
adresses dans la mémoire de l’ordinateur.
Une variable est caractérisée par son nom, son type et sa valeur.
Nom de variable
Toute variable doit avoir un nom que le programmeur lui attribue à
sa bonne guise. Ce nom est appelé indicateur.
Le nom est formé des lettres (A à Z, minuscules ou majuscules),
des chiffres (0 à 9) et du caractère de soulignement (‘_’).
Le premier caractère doit être une lettre. Et c’est préférable de ne
pas mettre d’espace dans le nom de variable et d’éviter les caractères
spéciaux, en déhors du caractère de soulignement.
Attention : la casse est de rigueur : les caractères minuscules et
majuscules sont distingués. Donc maman, Maman, MAMAN sont trois
variables différentes.
En outre, il est conseillé que le nom de variable soit mnémonique
(significatif) et raisonnable (pas trop longue)
Enfin notez que vous ne pouvez pas utiliser comme nom de variable l’un
des 33 mots réservés de Python ci-après :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
12
Introduction à la programmation avec Python
Types de variables
Sous Python, il n’est pas nécessaire d’écrire des lignes de
programme spécifiques pour définir le type des variables avant de
pouvoir les utiliser. Il vous suffit en effet d’assigner une valeur à un nom
de variable pour que celle-ci soit automatiquement créée avec le type qui
correspond au mieux à la valeur fournie.
Ceci constitue une particularité intéressante de Python, qui le
rattache à une famille particulière de langages ou l’on trouve aussi par
exemple Lisp, Scheme, et quelques autres. On dira à ce sujet que le
typage des variables sous Python est un typage dynamique, par
opposition au typage statique qui est de règle par exemple en C++ ou
en Java. Dans ces langages, il faut toujours – par des instructions
distinctes – d’abord déclarer (définir) le nom et le type des variables, et
ensuite seulement leur assigner un contenu, lequel doit bien entendu
être compatible avec le type déclaré.
Toutefois, les principaux types de variables sont :
Les entiers
Les réels ou flottants
Les chaînes de caractères
Les booléens
Les listes
Les dictionnaires
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
13
Introduction à la programmation avec Python
Contenu d’une variable
Le contenu d’une variable, appelé généralement «valeur», est donc
lié au type de données qu’accepte la variable en question.
Affectation de valeur dans une variable
Affecter c’est attribuer une valeur à une variable. C’est mettre un
contenu dans une variable. Le principe d’affectation est simple.
Le symbole d’affectation est = ; à gauche c’est l’indicateur de variable ;
à droite c’est une expression.
Une expression peut être :
- Une valeur constante
- Une variable
- Toute combianison d’opérations valides utilisant des constantes ou
des variables.
Voici quelques exemples d’affectation.
Quel effet ces trois instructions ont-elles sur l’ordinateur ?
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
14
Introduction à la programmation avec Python
Explications :
- Créer et mémoriser le nom de variable
- Lui attribuer un type
- Créer et mémoriser une valeur particulière
- Etablir un lien (par le système interne de pointeurs) entre le nom
de la variable et l’emplacement mémoire de la valeur
correspondante
Note :
1. la valeur affectée dans une variable écrase la valeur précédente. Cela
veut dire que si une variable avait déjà une valeur et que vous y affectez
une nouvelle valeur, la nouvelle valeur remplace la première.
2. Sous Python, on peut affecter une valeur à plusieurs variables
simultanément. Par exemple : ou
3. On peut aussi effectuer des affectations parallèles avec un seul
opérateur. Par exemple : où la valeur de a est 15
et celle de b est 2,25.
2.2. Les commentaires
Dans un script, tout ce qui suit le caractère # est ignoré par Python
jusqu’à la fin de la ligne et est considéré comme un commentaire.
Les commentaires doivent expliquer votre code dans un langage
humain. Voici un exemple :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
15
Introduction à la programmation avec Python
2.3. Les instructions de lecture et d’écriture
La base de la manipulation d’un langage de programmation réside
dans les différents mouvements d’entrée/sortie ou de lecture/écriture.
Vous devez savoir comment ordonner à l’ordinateur de lire une
information saisie sur clavier et comment afficher (écrire) sur l’écran le
message que vous souhaitez voir affiché.
Print() pour l’écriture
Pour afficher un message sur la console, l’instruction indiquée est
Print(). Le message qui sera affiché doit être placé entre les
parenthhèses de la fonction, entouré des guillemets.
Et quand vous exécutez, il affiche cette console :
Il est possible d’afficher le contenu d’une variable. Pour cela il vous
suffit de placer le nom de variable entre les parenthèses de print() sans
guillemets cette fois.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
16
Introduction à la programmation avec Python
Et maintenant, exécutez votre programme. Vous avez l’écran suivant !
Input() pour la lecture
Pour lire l’information saisie sur le clavier, il convient d’utiliser
Input() qui est une fonction prédéfinie de python. Toutefois, la valeur lue
doit être conservée dans la mémoire de l’ordinateur pendant toute
l’exécution du programme. Il faut donc utiliser le principe d’affectation :
la variable à gauche, l’instruction à droite.
Cette fonction provoque une interruption dans le programme
courant. L’utilisateur est invité à entrer une valeur à partir du clavier et à
terminer par « ENTER ». Lorsque cette touche est enfoncée, l’exécution
du programme se poursuit.
On peut invoquer la fonction Input() en laissant les paranthèses
vides. On peut aussi y placer en argument un message explicatif destiné
à l’utilisateur.
Soulignons que la fonction input() renvoie toujours une chaine de
caracteres. Si vous souhaitez que l’utilisateur entre une valeur
numérique, vous devrez donc convertir la valeur entrée (qui sera donc
de toute façon de type string) en une valeur numérique du type qui vous
convient, par l’intermédiaire des fonctions intégrées int() (si vous
attendez un entier) ou float() (si vous attendez un réel).
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
17
Introduction à la programmation avec Python
Notez que pour raccourcir le programme on aurait pu utiliser la fonction
int() sur la même ligne que la fonction input().
2.4. Les opérateurs
Les opérateurs sont des symboles permettant de réaliser des
opérations sur les données. Ils permettent ainsi de manipuler les
variables. Et ils sont de divers types.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
18
Introduction à la programmation avec Python
Les opérateurs arithmétiques
Opérateur Opération Notation Remarque
+ Addition A+5
X+b+125+z
- Soustraction a-3
* Multiplication b*3
/ Division c/2 Renvoie
obligatoirement un
float
// Division entière b//3 5//4 = 1
** Elévation à la A**3
puissance
% Modulo : reste A Mod 2 8%4 = 0
d’une division
= Affectation A=20
Les opérateurs de comparaison ou (relationnels)
Opérateur Relation Notation
(comparaison)
== Egal à A==B
> Supérieur à A > 10
>= Supérieur ou A >= 5
égal à
< Inférieur à B<8
<= Inférieur ou égal B<A
à
!= Différent de A != B
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
19
Introduction à la programmation avec Python
Les opérateurs de concaténation
Opérateur Notation
+ Ou , A,B Si A="Papa est venu"
A+B Et si B=" Ce soir" ;
alors C=A + B
donnera "Papa est
venu Ce soir"
Les opérateurs d’assignation
Opérateur Notation Equivalent
= A=10 A=10
*= A*= 2 A=A*2
+= B+=10 B=B+10
-= B-= 8 B=B-8
/= D/=2 D=D/2
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
20
Introduction à la programmation avec Python
Les opérateurs logiques
Ils permettent d’associer deux expressions relationnelles et renvoient
une valeur booléenne (vrai ou faux) selon le cas.
Opérateur Notation
and A==2 and b==6 Une expression logique
avec l’opérateur and
renvoie un résultat positif si
toutes les expressions
(relationnelles) en entrée
sont vraies.
or A<2 or b>5 Une expression logique
avec l’opérateur or renvoie
un résultat positif si au
moins une des expressions
(relationnelles) en entrée
est vraie.
Exemple : supposons un programme qui permet de calculer la
somme de deux entiers. Pour cela l’utilisateur doit saisir deux nombres
entiers successivement, ensuite le programme devra calculer la somme
(l’addition) de ces entiers et enfin afficher le résultat. Ce programme
ressemble à celui-ci :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
21
Introduction à la programmation avec Python
Exemple 2 : On peut procéder aussi au calcul de la moyenne
entre 3 âges. La procédure sera la même que pour l’exercice précédent,
au début. Car pour trouver la moyenne, on doit d’abord avoir la somme.
Il faudra donc saisir 3 fois l’âge d’une personne différente. Le
programme est le suivant :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
22
Introduction à la programmation avec Python
Cette fois-ci, il s’agit d’un programme qui calcule le salaire net d’un
agent, sachant que cet agent doit normalement donner son nom, le
nombre de ses enfants, le nombre jours prestés par mois et le
programme calcule la suite.
D’abord, le programme calcule le salaire brut (en multipliant le salaire de
base par le nombre de jours de travail) ; ensuite il détermine le frais de
transport (nombre de jours de travail multiplié par 2,5 dollars ; ainsi que
l’allocation de feuille (nombre d’enfants multiplié par 15 dollars). Ensuite
on retient pour chaque agent, 1.7 dollar.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
23
Introduction à la programmation avec Python
Ce qui produit le résultat suivant :
Je pourrais proposer d’afficher successivement la valeur pour le frais de
transport, celle de l’allocation familiale, le salaire brut, le retenu et enfin
le net à payer. Voici comment se présente le programme modifié :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
24
Introduction à la programmation avec Python
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
25
Introduction à la programmation avec Python
Et le résultat final :
Travail pratique
Dans un programme qui demande un nombre entier à l’utilisateur, on
doit afficher :
- Le nombre qui précède celui qui a été saisi ;
- Le nombre qui le succède ;
- Son double ;
- Son triple
Bonne application.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
26
Introduction à la programmation avec Python
Chapitre 3. LES INSTRUCTIONS DE TESTS OU CONDITIONS
Les programmes en informatique ne sont pas toujours linéaires.
Parfois, l’exécution d’un bloc d’instructions dépend d’une ou de plusieurs
conditions. Il existe pour cela des instructions de test, ou de
branchement. Elles permettent de vérifier l’exactitude d’une expression
relationnelle (condition) et en fonction de la valeur obtenue (booléenne :
positive ou négative), le programme décide si une instruction (ou bloc
d’instructions) sera exécutée ou pas.
3.1. L’instruction IF… :
Traduisible par «SI…ALORS… », elle permet d’exécuter une
instruction (se trouvant après ALORS si et seulement si la condition
(placée après SI) est vérifiée.
Il y a plusieurs manières d’employer IF…THEN…
3.1.1. IF… : avec une condition
Si vous n’avez qu’une condition à considérer et une seule
instruction à exécuter si la condition est vraie, alors rien de compliqué.
Placer la condition (une expression relationnelle souvent) entre IF et :,
puis le traitement, c’est-à-dire l’instruction à exécuter.
Par exemple, supposons que nous devons écrire un programme qui
demande à une personne son âge et qui affiche un message
d’avertissement s’il s’agit d’un mineur.
On voit bien la condition (age<18) de laquelle dépend l’affichage
du message "Attention, vous êtes mineur!!!". Si l’âge est correct, rien ne
se passera.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
27
Introduction à la programmation avec Python
Ce programme peut s’écrire autrement : en mettant l’instruction
sur une ligne différente et en l’indentant. Avec cette technique, vous
pouvez exécuter plusieurs instructions à la suite d’une seule condition.
3.1.2. IF…THEN avec plusieurs conditions
L’exécution d’une instruction ou un bloc, dépend parfois de
plusieurs conditions réunies. Dans ce cas, il faut utiliser des opérateurs
logiques pour regrouper plusieurs expressions relationnelles. AND, OR,
….peuvent donc faire l’affaire.
Supposons qu’on veut connaitre l’âge et l’ancienneté d’un agent
avant de décider s’il va en retraite. Il faut que l’âge atteigne 60 ans ou
que l’ancienneté atteigne 30 ans.
On voit bien dans cet écran que l’agent n’a pas atteint 60 ans
d’âge ; mais ayant totalisé 30 ans d’ancienneté, il doit bien aller à la
retraite. Essayez avec des opérateurs différents, vous obtiendrez des
résultats différents.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
28
Introduction à la programmation avec Python
3.1.3. IF… : …ELSE : (instructions alternatives)
Les instructions à exécuter peuvent être alternatives. Soit la
condition (une ou plusieurs) est vraie et une instruction s’exécute, soit la
condition est fausse et une autre instruction s’exécute.
Par exemple, si on revient au programme de la mise à la retraite,
on peut bien afficher un message d’encouragement à l’agent qui n’a pas
encore atteint 60 ans d’âge ni 30 ans d’ancienneté.
Pareil pour le contrôle d’âge pour les mineurs. Essayez un message
d’alternative.
3.1.4. IF…THEN…ELSEIF (conditions et instructions
alternatives)
Les conditions peuvent s’enchaîner ou s’opposer avec IF… :, dans
ce cas, il faut parfois utiliser ELIF : comme solution.
Soit un programme qui octroie un don aux enfants (0-5 ans), aux
pépites (6-10 ans), aux cadets (11-14 ans), aux juniors (15-17 ans) et
séniors (19 ans ou plus)
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
29
Introduction à la programmation avec Python
3.1.5. Imbrication des IF
Deux ou plusieurs instructions IF peuvent se succéder sans que
cela porte préjudice à l’exécution du programme. Ça s’appelle
imbrication des IF.
Par exemple, une prime de 300$ est accordée aux hommes mariés
qui sont cadres, et une autre de 200$ aux femmes célibataires. Les
autres n’ont rien.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
30
Introduction à la programmation avec Python
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
31
Introduction à la programmation avec Python
3.2. Respect des règles de syntaxe
Tout ce qui précède nous amène à faire le point sur quelques
règles de syntaxe :
Dans de nombreux langages de programmation, il faut terminer
chaque ligne d’instructions par un caractère spécial (souvent le point-
virgule). Sous Python, c’est le caractère de fin de ligne qui joue ce rôle.
On peut également terminer une ligne d’instructions par un
commentaire. Un commentaire Python commence toujours par le
caractère spécial #. Tout ce qui est inclus entre ce caractère et le saut à
la ligne suivant est complètement ignore par le compilateur.
Dans la plupart des autres langages, un bloc d’instructions doit être
délimite par des symboles spécifiques (parfois même par des
instructions, telles que begin et end).
Avec Python, vous devez utiliser les sauts à la ligne et l’indentation,
mais en contrepartie vous n’avez pas à vous préoccuper d’autres
symboles délimiteurs de blocs. En définitive, Python vous force donc à
écrire du code lisible, et à prendre de bonnes habitudes que vous
conserverez lorsque vous utiliserez d’autres langages.
Travail pratique
Le code du travail prévoit que les agents aillent en retraite après
un certain nombre d’années de service ou d’âge. Ainsi, pour un homme,
atteindre 65 ans d’âge ou 30 ans d’ancienneté est synonyme d’aller en
retraite. Pour une femme, c’est 55 ans d’âge ou 25 ans d’ancienneté.
Dans un programme en python, vous allez demander à l’utilisateur
son nom, son année de naissance et son année d’engagement. Ensuite,
vous calculez l’âge et l’ancienneté. Si cet agent atteint ou dépasse l’âge
qu’il faut pour aller en retraite, vous devez le lui dire par un message
("Mr ou Me xxx, désolé, vous allez en retraite !").
Sinon, vous devez dire à l’agent combien d’années il lui reste avant
d’aller en retraite.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
32
Introduction à la programmation avec Python
Chapitre 4. LES LISTES
4.1. Introduction sur les listes
Une liste est une structure de données qui contient une série de
valeurs. Python autorise la construction de liste contenant des valeurs de
types différents (par exemple entier et chaîne de caractères), ce qui leur
confère une grande flexibilité. Une liste est déclarée par une série de
valeurs (n’oubliez pas les guillemets, simples ou doubles, s’il s’agit de
chaînes de caractères) séparées par des virgules, et le tout encadré par
des crochets. En voici des exemples :
Lorsque l’on affiche une liste, Python la restitue telle qu’elle a été
saisie.
Un des gros avantages d’une liste est que vous pouvez appeler ses
éléments par leur position. Ce numéro est appelé indice (ou index) de la
liste.
Soyez très attentifs au fait que les indices d’une liste de n éléments
commencent à 0 et se terminent à n-1. Voyez l’exemple suivant.
Par conséquent, si on appelle l’élément d’indice 5 de notre liste,
Python renverra un message d’erreur.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
33
Introduction à la programmation avec Python
4.2. Opérations 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.
4.2.1. Les tranches
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, du émième au énième (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 :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
34
Introduction à la programmation avec Python
Notez que lorsqu’aucun indice n’est indiqué à gauche ou à droite
du symbole deux-points, Python prend par défaut tous les éléments
depuis le début ou tous les éléments jusqu’à la fin respectivement.
On peut aussi préciser le pas en ajoutant un symbole deux-points
supplémentaire et en indiquant le pas par un entier.
4.2.1. Les fonctions len(), range() et list()
L’instruction len() vous permet de connaître la longueur d’une liste,
c’est-à-dire le nombre d’éléments que contient la liste.
L’instruction 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.
L’instruction range() fonctionne sur le modèle range([début,] fin[,
pas]). Les arguments entre crochets sont optionnels. Pour obtenir une
liste de nombres entiers, il faut l’utiliser systématiquement avec la
fonction list().
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
35
Introduction à la programmation avec Python
4.2.3. Les listes de listes
Il est tout à fait possible de construire des listes de listes. Cette
fonctionnalité peut parfois être très pratique. Pour accéder à un élément
de la liste, on utilise l’indiçage habituel. Pour accéder à un élément de la
sous-liste, on utilise un double indiçage. Par exemple :
4.2.4. Somme d’une liste, maximum, minimum
Les fonctions min(), max() et sum() renvoient respectivement le
minimum, le maximum et la somme d’une liste passée en argument.
4.3. Eléments complémentaires sur les listes
Les méthodes suivantes peuvent s’appliquer sur une liste :
Append() : ajoute un élément à la fin de la liste
Insert() : insère un élément dans la liste à une position précise
grâce à un indice
Remove() : supprime un élément de la liste par sa valeur
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
36
Introduction à la programmation avec Python
Sort() : trie une liste
Reverse() : inverse une liste
Count() : compte le nombre d’éléments passés en argument
4.4. Travail pratique
Imaginez un programme qui demande à l’utilisateur de saisir un entier
quelconque. Par la suite, le programme range dans une liste, les 10
nombres qui suivent le nombre saisi, puis il affiche leur somme.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
37
Introduction à la programmation avec Python
Chapitre 5. LES BOUCLES
Les boucles (appelées aussi structures répétitives), permettent
d’exécuter des instructions (traitements) répétitives. Au lieu d’écrire les
mêmes instructions plusieurs fois, il vaut mieux vaut utiliser une boucle.
Ainsi, plusieurs instructions sont écrites une seule fois, mais exécutées
plusieurs fois.
5.1. La boucle WHILE
Syntaxe :
WHILE –----CONDITION-----
---Instructions---
Avec cette boucle, une condition permet de faire exécuter les
instructions répétitives. Cette condition est placée juste à côté de
l’instruction WHILE. Si elle est vérifiée, alors on accède dans la boucle et
on exécute les instructions qui y sont. A chaque fois qu’on exécute une
instruction, on revient sur WHILE et on revérifie la condition. Tant qu’elle
demeure vraie, on reste dans la boucle.
Prenons l’exemple d’un programme qui écrit à l’écran 10 nombres (de 1
à 10). Nous faisons apparaitre un compteur qui va permettre de ne pas
dépasser 10. Il jouera le rôle de la clé de la boucle.
On voit qu’au départ la variable i a la valeur 1. En introduisant la
boucle WHILE, on demande au programme d’écrire la valeur de nombre
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
38
Introduction à la programmation avec Python
à chaque fois, tant que celle-ci sera inférieure ou égale à 10. C’est
seulement lorsque cette réalité ne sera plus vérifiable (nombre égal à
11), que le programme sortira de la boucle.
5.2. La boucle FOR
Cette boucle est puissante. Elle est particulièrement utilisée pour
afficher les éléments d’une liste ou d’une chaine de caractères un à un.
Elle s’utilise avec deux variables principalement : la première est la
variable d’itération (qu’on peut nommer à sa guise) dont la valeur
change à chaque nouvelle occurrence. La seconde, souvent une liste, est
la variable sur laquelle on itère.
Prenons un premier exemple : si nous voulons afficher un à un les
éléments d’une liste d’une longueur de trois, on pourrait écrire ceci.
Ça parait facile. Mais c’est parce que le nombre d’éléments à
afficher est petit. Supposons qu’on ait à afficher 10 éléments. Cette
façon d’écrire le programme serait fatigante. Il vaut mieux passer par la
boucle For qui permet de récupérer dans une liste chaque élément par
sa valeur.
Voilà qui est mieux ! Vous pouvez écrire le même programme pour une
liste de 100 nombres, 500 ou 1000.
D’ores et déjà, prêtez attention au caractère deux-points « : » à la
fin de la ligne débutant par for. Cela signifie que la boucle for attend un
bloc d’instructions, en l’occurrence toutes les instructions que Python
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
39
Introduction à la programmation avec Python
répétera à chaque itération de la boucle. On appelle ce bloc
d’instructions le corps de la boucle. Comment indique-t-on à Python où
ce bloc commence et se termine ? Cela est signalé uniquement par
l’indentation, c’est-à-dire le décalage vers la droite de la (ou des) ligne(s)
du bloc d’instructions.
Notez que le programme ci-haut peut être écrit différemment. En
effet, la fonction range() que nous avons étudiée plus haut permet de
faire une boucle sur une liste d’entiers de manière automatique. Ça
raccourcit le dernier programme.
5.3. Exercice d’application 1
Essayons de créer une liste vide (n’ayant donc aucun élément). Par
la suite, l’utilisateur sera appelé à introduire dans la liste les noms des
personnes qu’il désire. S’il termine on lui affiche le nombre de noms
saisis et chacun de ces noms.
A la première lecture de cet énoncé il y a un problème : comment
savoir le nombre de noms que l’utilisateur souhaite introduire ?
On ne le saura pas d’avance. Alors on va faire appel à la boucle
While. On crée une variable qui contiendra la réponse à la question
"Souhaitez-vous ajouter un autre nom dans la liste (oui/non) ?".
Si l’utilisateur répond par oui, on recommence la demande d’un
nom à placer dans la liste. S’il dit non, alors la saisie s’arrête.
Après, on compte le nombre d’éléments de la liste qu’on affiche ;
on affiche ensuite tous les éléments.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
40
Introduction à la programmation avec Python
Remarquez que nous avons d’abord affecté la valeur "oui" à la
variable rep, pour permettre d’entrer dans la boucle. Ensuite, pour
ajouter dans la liste l’élément saisi puis récupéré par la variable val, nous
avons utilisé la méthode append(). Vous vous souvenez sûrement de son
rôle.
Voici le résultat :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
41
Introduction à la programmation avec Python
5.4. Exercice d’application 2
Supposons un programme qui demande à l’utilisateur d’insérer les
notes de 10 étudiants dans le cours de math. Chaque note sera placée
dans une liste créée à cet effet. A la fin, le programme affichera la
moyenne des notes, la note maximale et le nombre de notes ayant
dépassé la moyenne.
Nous allons employer la boucle While pour contrôler le nombre de
notes à saisir (10). Ensuite, avec la fonction maximum() nous
obtiendrons la note maximale ; avec la fonction sum() on obtiendra la
moyenne. Enfin, avec la boucle For nous allons parcourir la liste élément
par élément pour compter les notes supérieures à la moyenne.
Retouchez ce programme. Cette fois-ci on ne connait pas à l’avance le
nombre d’étudiants dont il faut enregistrer les notes. A la fin de chaque
saisie, il faudra demander à l’utilisateur s’il souhaite saisir une nouvelle
note. La saisie finit lorsqu’il répond NON.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
42
Introduction à la programmation avec Python
5.5. Travail pratique
Ecrire un programme qui demande un nombre entier à l’utilisateur, et qui
affiche ensuite, la factorielle de ce nombre.
Par exemple, si l’utilisateur avait saisi 4, sa factorielle serait 24
(4*3*2*1).
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
43
Introduction à la programmation avec Python
Chapitre 6. TRAITEMENT DES CHAINES DE CARACTERES
S’il est facile de travailler avec des nombres, comme il a été le cas
le plus souvent depuis le début, ce n’est pas évident avec les chaines de
caractères. Leur gestion est toujours particulière. C’est pour ça qu’un
chapitre entier est consacré quant à ce.
Une chaine de caractères est un ensemble de caractères. Si on doit
considérer un caractère comme tout ce qui peut s’écrire sur un clavier
(lettre, chiffre, symbole et même le vide), alors il peut s’agir d’un mot,
d’une phrase, d’un code…
Plusieurs fonctions permettent de traiter les chaines de caractères.
6.1. La fonction REPLACE ()
Elle permet de remplacer un mot ou un caractère dans une chaine
de caractères. La fonction suit une chaine de caractères ou une variable
chaine de caractères. Entre parenthèses on place premièrement la
chaine à remplacer, ensuite la chaine qui la remplace.
Comme dans l’exemple suivant, où le mot reine est remplacé par
princesse.
6.2. La fonction Upper() et la fonction Lower()
La première convertit une chaine de caractères en majuscule. La
seconde convertit en minuscule une chaine de caractères.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
44
Introduction à la programmation avec Python
Si on souhaite que seul le premier caractère d’une chaine soit en
majuscule, on utilise la fonction capitalize(). Par exemple :
[Link]()
6.3. La méthode split()
Cette méthode découpe une chaine de caractères en plusieurs
éléments appelés champs, en utilisant comme séparateur n’importe
quelle combinaison d’espace blanc.
6.3. Les méthodes find(), count(), startswith() et strip()
La méthode find() recherche une chaine de caractères passée en
argument. Si l’élément recherché est trouvé, alors l’indice de début de
l’élément dans la chaine est renvoyé ; s’il est trouvé plusieurs fois, seul
le premier indice est renvoyé ; s’il n’est pas trouvé, la valeur -1 est
renvoyée.
La méthode count() quant à elle, compte le nombre d’occurrence
d’une chaine de caractères passée en argument.
La méthode startswith() vérifie si une chaine de caractères
commence par une autre chaine de caractères. Si c’est le cas la valeur
true est renvoyée ; sinon la valeur false est renvoyée.
La méthode strip() permet de nettoyer les bords d’une chaine de
caractères en enlevant les espaces se trouvant sur les bords d’une
chaine, mais pas ceux à l’intérieur.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
45
Introduction à la programmation avec Python
6.4. Fonctions de conversion
5.4.1. Conversion d’une chaîne de caractères en nombre
Les méthodes int() et float() permettent de convertir une chaîne de
caractères respectivement en entier ou en décimal (flottant).
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
46
Introduction à la programmation avec Python
5.4.2. Conversion d’une valeur en une chaîne de
caractères
Pour convertir une valeur, tel qu’un nombre en une chaîne de
caractères, on emploie la méthode str(). Elle produit une valeur chaîne
de caractères.
5.4.3. Conversion d’une liste des chaînes de caractères en
une chaîne de caractères
La conversion d’une liste en une chaîne de caractères se fait avec
la méthode .join(). Les éléments de la liste précédente sont concaténés
les uns à la suite des autres et intercalés ou pas avec un séparateur.
Comme ici :
6.5. Extraire des caractères dans une chaîne
Pour extraire des caractères dans une chaîne, on peut appliquer
certaines propriétés des listes. Car une chaîne de caractères est un peu
comme une liste particulière.
Nous les reprenons sur l’exemple suivant.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
47
Introduction à la programmation avec Python
6.6. Exercice d’application
Supposons un programme qui affiche les prémices des noms d’un
utilisateur. Mais avant, ce dernier doit définir un mot de passe qui
compte au moins 6 caractères et qui ne doit pas contenir d’espace (pas
un seul).
Si l’une des conditions n’est pas remplie, un message d’erreur est
envoyé à l’utilisateur, et on l’oblige de reprendre la saisie jusqu’à ce que
la valeur soit correcte. Voici les codes.
On voit qu’avant d’ouvrir la boucle on a d’abord lu le mot de
passe. Ceci car la boucle While n’est accessible que lorsque la condition
d’accès est définie et est vérifiée. La même lecture du mot de passe est
reprise dans la boucle (car supposant que nos conditions n’étaient pas
remplies. A partir de là, la lecture du mot de passe se répétera tant
qu’on n’a pas répondu correctement aux critères.
A la fin, en sortie de la boucle, l’utilisateur est prié se saisir son
nom et son prénom dont on récupère le premier caractère (prémices),
qu’on affiche avant de quitter le programme. Voici les résultats.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
48
Introduction à la programmation avec Python
Cela dans le cas où l’utilisateur y est allé avec des valeurs correctes.
Voici les résultats au cas contraire.
6.7. Travail pratique
Un programme enregistre 10 codes de convention des abonnées
internationaux d’une agence. Chaque code est composé de 10 caractères
de format xxxx-xxx-xxx ; les 4 premiers caractères forment le code
postal du pays de l’abonné (ex. : +244). Les 3 caractères suivants
représentent le numéro d’ordre (ex. : 001) ; et les 3 derniers sont
formés des trois derniers caractères de la valeur de l’année (ex. : 021).
Chaque code doit respecter ce format.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
49
Introduction à la programmation avec Python
Après avoir saisi un à un ces codes, et après les avoir placés dans
une liste, le programme doit être capable d’indiquer combien d’abonnés
(reconnus ici par leurs codes) sont congolais (RDC), et combien sont
français.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
50
Introduction à la programmation avec Python
Chapitre 7. LES FONCTIONS
En programmation, les fonctions sont très utiles pour réaliser
plusieurs fois la même opération au sein d’un programme. Elles rendent
également le code plus lisible et plus clair en le fractionnant en blocs
logiques. Pour l’instant, une fonction est à vos yeux une sorte de « boîte
noire » :
- A laquelle vous passez aucun, une ou plusieurs variables (entre
parenthèses). Ces variables sont appelées arguments ;
- Qui effectue une action ;
- Et qui renvoie un objet python ou rien du tout
7.1. Définir une fonction
Python utilise le mot-clé def pour définir une fonction, suivi du nom
qu’on attribue à la fonction, et de deux points (comme avec if). Si l’on
souhaite que la fonction renvoie quelque chose (ce qui n’est pas
obligatoire), il faut utiliser le mot-clé return.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
51
Introduction à la programmation avec Python
7.2. Passage d’arguments
Le nombre d’arguments que l’on peut passer à une fonction est
variable, et est donc laissé libre à l’initiative du programmeur qui
développe une nouvelle fonction.
Une particularité des fonctions en Python est que vous n’êtes pas
obligé de préciser le type des arguments que vous lui passez, dès lors
que les opérations que vous effectuez avec ces arguments sont valides.
Python est en effet connu comme étant un langage au « typage
dynamique », c’est-à-dire qu’il reconnaît pour vous le type des variables
au moment de l’exécution.
Argument par mot-clé
Il est aussi possible de passer un ou plusieurs argument(s) de
manière facultative et de leur attribuer une valeur par défaut. Cela
permet notamment d’éviter un message d’erreur au cas où on omet de
passer un argument pendant l’appel de la fonction. Cette stratégie
s’appelle argument par mot-clé, contrairement à l’argument
positionnel où le passage d’argument lors de l’appel est obligatoire.
7.3. Renvoi des résultats
Un énorme avantage en Python est que les fonctions sont capables
de renvoyer plusieurs objets à la fois. En réalité Python ne renvoie qu’un
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
52
Introduction à la programmation avec Python
seul objet, mais celui-ci peut être séquentiel, c’est-à-dire contenir lui-
même d’autres objets.
Renvoyer un tuple ou une liste de deux éléments (ou plus) est très
pratique en conjonction avec l’affectation multiple.
7.4. Variables locales et variables globales
Lorsqu’on manipule des fonctions, il est essentiel de bien
comprendre comment se comportent les variables. Une variable est dite
locale lorsqu’elle est créée dans une fonction. Elle n’existera et ne sera
visible que lors de l’exécution de ladite fonction.
Une variable est dite globale lorsqu’elle est créée dans le
programme principal. Elle sera visible.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
53
Introduction à la programmation avec Python
7.4. Les modules
Les modules sont des programmes Python qui contiennent des
fonctions que l’on est amené à réutiliser souvent (on les appelle aussi
bibliothèques ou librairies). La plupart de ces modules sont déjà installés
dans les versions standards de Python.
Importation des modules
L’utilisation de la syntaxe import module permet d’importer tout
une série de fonctions organisées par « thèmes ». Par exemple, les
fonctions gérant les nombres aléatoires avec random et les fonctions
mathématiques avec math. Python possède de nombreux autres
modules internes (c’est-à-dire présent de base lorsqu’on installe Python).
Par exemple, si nous voulons un programme qui affiche un élément pris
de manière aléatoire d’une liste, nous pouvons écrire les codes suivants.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
54
Introduction à la programmation avec Python
Quelques modules connus et disponibles sont entre autre :
- math: fonctions et constantes mathématiques de base (cos, sin,
exp, pi…)
- random : génération des nombres aléatoires
- time : accès à l’heure de l’ordinateur et aux fonctions gérant le
temps
- urllib : récupération des données sur internet depuis python
- re : gestion des expressions régulières
- Tkinter : interface Python avec Tk. Création d’objets graphiques
- os : dialogue avec le système d’exploitation
- sys : interaction avec l’interpréteur Python, passage d’agument
7.5. Exercices d’application
Ecrivons un programme qui demande à l’agent d’entrer son année de
naissance et son année d’engagement, et qui calcule ensuite son âge et
son ancienneté, avant de lui dire s’il va en retraite (60 ans d’âge ou 30
ans d’ancienneté au minimum).
On voit que le calcul de l’âge est pareil à celui de l’ancienneté.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
55
Introduction à la programmation avec Python
Créons maintenant un petit jeu. Le principe consiste à poser une
question à l’utilisateur, et de recevoir sa réponse. Si elle est correcte on
le félicite ; sinon on lui dit que c’est faux.
Dès le départ, on demande à l’utilisateur s’il veut répondre à une
question. S’il saisit 1 (Oui), on accède dans la boucle while pour trouver
aléatoirement un indice servant pour tirer la question à lui poser.
Pour cela nous avons deux listes. La première (questions) contient 5
questions enregistrées. La seconde (réponses) contient les réponses à
ces questions dans un ordre respectif correspondant.
Au début les variables Fin_indice (pour marquer le nombre final des
questions posées au joueur), point (pour enregistrer le score, nombre de
réponses correctes) et nb (compte le nombre de questions déjà posées)
sont toutes à zéro.
Dans la boucle while, avec la variable indice on récupère un indice pour
la liste, grâce au module random et sa fonction randint() dont ici les
bords sont 0 et 4 (5 questions maximum). Avec le même indice récupéré
on tire la question dans la première liste et aussi sa réponse dans la
deuxième. On affiche la question à l’écran. On lit la réponse du joueur,
qu’on compare à la vraie réponse. Si elles correspondent, on incrémente
le compteur de points obtenus et on affiche un message de félicitation;
sinon, on affiche un message d’erreur. On incrémente ensuite le
compteur de nombre de questions posées (nb) et celui du nombre de
questions maximal.
A la fin, si le nombre de questions posées est égal au nombre de bonnes
réponses, on félicite le joueur. Sinon on l’encourage à mieux faire.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
56
Introduction à la programmation avec Python
Et voici en illustration ce que cela produit comme résultat.
Allez-y, essayez de saisir ce programme chez vous et de le lancer. Vous
pouvez d’ailleurs l’améliorer.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
57
Introduction à la programmation avec Python
7.6. Travail pratique
Il s’agit de demander successivement à l’utilisateur 20 nombres entiers.
Pour chaque nombre saisi, sa valeur est envoyée dans une fonction où
sera calculée sa factorielle. Une fois la factorielle trouvée, la fonction
retourne la valeur au programme principal, qui la range dans une liste.
En résumé, chacun des 20 nombres sera saisi dans le programme
principal, mais seule sa factorielle (qui est calculée par une fonction
créée à cet effet) est envoyée dans la liste.
A la fin le programme devra afficher toutes les factorielles obtenues.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
58
Introduction à la programmation avec Python
Chapitre 8 : LES FICHIERS
En informatique, le mot fichier est d’usage intensif et désigne une
collection d’enregistrements. En le considérant par rapport à la gestion
de données, on dira qu’un fichier est une collection homogène et
structurée de données relatives à une entité précise. L’entité pouvant
être abstraite ou concrète.
On manipule trois types de fichiers :
Les fichiers à accès séquentiel. Ils ne contiennent que du texte.
Lors de leur ouverture, vous devez préciser le mode d’accès : en
lecture (input), en écriture (output) ou en ajout (append).
Les fichiers à accès direct. Ils sont constitués d’un ou de plusieurs
enregistrements de longueur fixe. Ils sont simultanément
accessibles en lecture et en écriture.
Les fichiers binaires. Tous les fichiers qui n’entrent pas dans les
deux précédentes catégories peuvent être ouverts comme fichiers
binaires. Ils sont simultanément accessibles en lecture et en
écriture.
Dans le cadre du cours, nous parlerons des fichiers à accès
séquentiel.
8.1. Lecture d’un fichier
Créons avant tout un fichier dans un éditeur d texte que nous
enregistrons dans un répertoire avec le nom "[Link]".
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
59
Introduction à la programmation avec Python
Signalons déjà l’usage du mot-clé with qui permet d’ouvrir le fichier en
évitant des erreurs d’ouverture (auquel cas il y aurait message).
Nous pouvons ouvrir un fichier avec la méthode .readline(), qui lit une
ligne d’un fichier et la renvoie comme chaîne de caractères. A chaque
nouvel appel de la méthode .readline(), la ligne suivante est renvoyée.
Associée à la boucle while, cette méthode permet de lire un fichier ligne
par ligne.
Un moyen plus facile de lire un fichier est d’utiliser la boucle for.
Regardez comment nous réécrivons le programme précédent.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
60
Introduction à la programmation avec Python
8.2. Ecriture dans un fichier
Avec ‘w’ comme second argument de l’instruction open, nous
ouvrons un fichier pour y écrire. Nous pouvons le faire avec l’aide d’une
liste par exemple.
Les caractères {}\n permettent que chaque élément de la liste soit
inséré dans le fichier avec un saut de ligne, pour éviter que les chaînes
s’entremêlent entre elles.
Il y a possibilité d’ouvrir plusieurs fichiers au même moment. Dans
l’exemple suivant, nous ouvrons le fichier [Link] pour lecture. Nous
chargeons son contenu dans le fichier nouveaux_contacts.txt que nous
ouvrons pour écriture.
On peut visualiser le contenu du deuxième fichier dans un autre
programme et voir si le premier a correctement fonctionné.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
61
Introduction à la programmation avec Python
Remarque
Vous avez sans doute remarqué que les méthodes qui lisent un
fichier (par exemple .readlines()) vous renvoient systématiquement des
chaînes de caractères. De même, pour écrire dans un fichier il faut
fournir une chaîne de caractères à la méthode .write().
Pour tenir compte de ces contraintes, il faudra utiliser les fonctions
de conversions de types vues au chapitre 2 Variables : int(), float() et
str(). Ces fonctions de conversion sont essentielles lorsqu’on lit ou écrit
des nombres dans un fichier.
En effet, les nombres dans un fichier sont considérés comme du
texte, donc 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 effectuer des opérations numériques avec.
8.3. Travail pratique
Il s’agit d’un algorithme qui remplit un fichier avec les noms, les
sexes et les notes des élèves dans le cours d’anglais. Cette fois,
l’utilisateur saisit lui-même ces informations les unes à la suite des autres
jusqu’à ce qu’il voudra arrêter. Une fois saisis, la note et le nom doivent
être rangés dans une ligne du fichier.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
62
Introduction à la programmation avec Python
Chapitre 9 : INTRODUCTION AUX INTERFACES GRAPHIQUES
Jusqu’à présent, nous avons utilisé Python exclusivement « en
mode texte ». Nous avons procédé ainsi parce qu’il nous fallait
absolument d’abord dégager un certain nombre de concepts
élémentaires ainsi que la structure de base du langage, avant
d’envisager des expériences impliquant des objets informatiques plus
élaborés (fenêtres, images, sons, etc.). Nous pouvons maintenant nous
permettre une petite incursion dans le vaste domaine des interfaces
graphiques.
Si vous ne le saviez pas encore, apprenez des à présent que le
domaine des interfaces graphiques (ou GUI, Graphical User Interfaces)
est extrêmement complexe. Chaque système d’exploitation peut en effet
proposer plusieurs ≪ bibliothèques ≫ de fonctions graphiques de base,
auxquelles viennent fréquemment s’ajouter de nombreux compléments,
plus ou moins spécifiques de langages de programmation particuliers.
Tous ces composants sont généralement présentés comme des classes
d’objets, dont il vous faudra étudier les attributs et les méthodes.
Avec Python, la bibliothèque graphique la plus utilisée jusqu’’à
présent est la bibliothèque tinter, qui est une adaptation de la
bibliothèque Tk (Tool Kit) développée à lorigine pour le langage Tcl.
Plusieurs autres bibliothèques graphiques fort intéressantes ont été
proposées pour Python : wxPython, pyQT, pyGTK, etc. Il existe
également des possibilités d’utiliser les bibliothèques de widgets Java et
les MFC de Windows.
Dans le cadre de ces notes, nous nous limiterons cependant à
tkinter, dont il existe fort heureusement des versions similaires (et
gratuites) pour les plates-formes Linux, Windows et Mac OS ; et qui est
présente de base dans les distributions python.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
63
Introduction à la programmation avec Python
9.1. Concepts liés à la programmation graphique
Lorsque l’on développe une GUI, nous créons une fenêtre
graphique contenant notre application, ainsi que des widgets inclus dans
la fenêtre.
Les widgets (window gadget) sont des objets graphiques
permettant à l’utilisateur d’interagir avec votre programme Python de
manière conviviale. Par exemple, les boutons, les listes de choix, ou
encore la zone de texte sont des widgets.
L’utilisation d’une GUI va amener une nouvelle manière d’aborder
le déroulement d’un programme, il s’agit de la programmation dite «
événementielle ». Jusqu’à maintenant vous avez programmé «
linéairement », c’est-à-dire que les instructions du programme principal
s’enchaînaient les unes derrière les autres (avec bien sûr de possibles
appels à des fonctions). Avec une GUI, l’exécution est décidée par
l’utilisateur en fonction de ses interactions avec les différents widgets.
Comme c’est l’utilisateur qui décide quand et où il clique dans l’interface,
il va falloir mettre en place ce qu’on appelle un « gestionnaire
d’événements ».
Le gestionnaire d’événements est une sorte de « boucle infinie »
qui est à l’affût de la moindre action de la part de l’utilisateur. C’est lui
qui effectuera une action lors de l’interaction de l’utilisateur avec chaque
widget de la GUI. Ainsi, l’exécution du programme sera réellement
guidée par les actions de l’utilisateur.
La bibliothèque Tk que nous piloterons avec le module Python
Tkinter propose tous les éléments cités ci-dessus (fenêtre graphique,
widgets, gestionnaire d’événements). Nous aurons cependant besoin
d’une dernière notion : les fonctions callback.
Une fonction callback est une fonction passée en argument d’une
autre fonction.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
64
Introduction à la programmation avec Python
9.2. Les classes de widgets tkinter
Il existe 15 classes de base pour les widgets tkinter :
Ces classes de widgets intègrent chacune un grand nombre de
méthodes. On peut aussi leur associer (lier) des évènements, comme
nous venons de le voir dans les pages précédentes. Vous allez apprendre
en outre que tous ces widgets peuvent être positionnes dans les fenêtres
à l’aide de trois méthodes différentes : la méthode grid(), la méthode
pack() et la méthode place().
Prenons l’exemple des codes suivants :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
65
Introduction à la programmation avec Python
Expliquons ligne par ligne :
Ligne 1 : nous importons le module tkinter qui apporte toutes
les classes et méthodes graphiques.
Ligne 2 : nous créons la fenêtre principale ; pour cela on crée
une instance de la classe Tk().
Ligne 3 : nous créons un label (une étiquette), c’est-à-dire une
zone où on affiche du texte. Pour cela nous avons créé une
variable text1 qui est une instance de la classe Label(). Cette
variable contient donc notre widget. Notez le premier argument
positionnel fen1 passé à la classe Label() ; celui-ci indique la
fenêtre parente où doit être placé notre label. Cet argument
doit toujours être placé en premier ; le second argument passé
est text, qui permet d’indiquer le texte à afficher sur le label ;
enfin le dernier argument fg indique la couleur de texte affiché.
Ligne 4 : Nous créons un bouton en créant une instance de la
classe Button(), à laquelle nous passons pour premier argument
le nom de la fenêtre fen1 où apparaitra le bouton ; la couleur
de texte du bouton s’affichera en vert.
Ligne 5 : nous créons une zone de liste, que nous plaçons dans
la fenêtre fen1 ; sans autre argument
Lignes 6, 7 et 8 : remarquez qu’après avoir écrit toutes ces
lignes en créant un label, un bouton et une liste, rien ne s’est
passé en réalité. Ces trois widgets existent bien, mais ils n’ont
pas encore été placés à l’intérieur de la fenêtre. Pour cela nous
appelons la méthode pack(). Ces widgets s’afficheront les uns à
la suite des autres.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
66
Introduction à la programmation avec Python
Ligne 9 : l’instruction [Link]() va lancer le gestionnaire
d’événements
9.3. Programmes et événements
Les programme utilisant une interface graphique sont structurés
d’une manière différente des scripts ≪ textuels ≫ étudies auparavant.
Tous les programmes d’ordinateur comportent grosso-modo trois
phases principales : une phase d’initialisation, laquelle contient les
instructions qui préparent le travail à effectuer (appel des modules
externes nécessaires, ouverture de fichiers, connexion a un serveur de
bases de données ou à l’Internet, etc.), une phase centrale ou l’on
trouve la véritable fonctionnalité du programme (c’est-à-dire tout ce qu’il
est censé faire : afficher des données à l’écran, effectuer des calculs,
modifier le contenu d’un fichier, imprimer, etc.), et enfin une phase de
terminaison qui sert à clôturer ≪ proprement ≫ les opérations (c’est-à-
dire fermer les fichiers restes ouverts, couper les connexions externes,
etc.).
Dans un programme ≪ en mode texte ≫, ces trois phases sont
simplement organisées suivant un schéma linéaire comme dans
l’illustration ci-contre. En conséquence, ces programmes se caractérisent
par une interactivité très limitée avec l’utilisateur. Celui-ci ne dispose
pratiquement d’aucune liberté : il lui est demandé de temps à autre
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
67
Introduction à la programmation avec Python
d’entrer des données au clavier, mais toujours dans un ordre
prédéterminé correspondant à la séquence d’instructions du programme.
Dans le cas d’un programme qui utilise une interface graphique,
par contre, l’organisation interne est différente. On dit d’un tel
programme qu’il est piloté par les événements. Apres sa phase
d’initialisation, un programme de ce type se met en quelque sorte ≪ en
attente ≫, et passe la main à un autre logiciel, lequel est plus ou moins
intimement intégré au système d’exploitation de l’ordinateur et ≪ tourne
≫ en permanence.
Ce réceptionnaire d’événements scrute sans cesse tous les
périphériques (clavier, souris, horloge, modem, etc.) et réagit
immédiatement lorsqu’un évènement y est détecté.
Un tel évènement peut être une action quelconque de l’utilisateur :
déplacement de la souris, appui sur une touche, etc., mais aussi un
évènement externe ou un automatisme (top d’horloge, par exemple).
Exemple : traçage des lignes dans un canevas
Le script décrit ci-dessous crée une fenêtre comportant trois
boutons et un canevas. Suivant la terminologie de tkinter, un canevas
est une surface rectangulaire délimitée, dans laquelle on peut installer
ensuite divers dessins et images à l’aide de méthodes spécifiques.
Lorsque l’on clique sur le bouton <Tracer une ligne>, une nouvelle
ligne colorée apparait sur le canevas, avec à chaque fois une inclinaison
différente de la précédente.
Si l’on actionne le bouton <Autre couleur>, une nouvelle couleur
est tirée au hasard dans une série limitée. Cette couleur est celle qui
s’appliquera aux tracés suivants.
Le bouton <Quitter> sert bien évidemment à terminer l’application
en refermant la fenêtre.
Voici les différentes fonctions créées pour réaliser ce gros programme :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
68
Introduction à la programmation avec Python
Ensuite voici le programme principal :
Conformément à ce que nous avons expliqué dans le texte des
pages précédentes, la fonctionnalité de ce programme est
essentiellement assurée par les deux fonctions drawline() et
changecolor(), qui seront activées par des évènements, ceux-ci étant
eux-mêmes définis dans la phase d’initialisation.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
69
Introduction à la programmation avec Python
Dans cette phase d’initialisation, on commence par importer
l’intégralité du module tkinter ainsi qu’une fonction du module random
qui permet de tirer des nombres au hasard. On crée ensuite les
différents widgets par instanciation à partir des classes Tk(), Canvas() et
Button(). Remarquons au passage que la même classe Button() sert a
instancier plusieurs boutons, qui sont des objets similaires pour
l’essentiel, mais néanmoins individualises grâce aux options de création
et qui pourront fonctionner indépendamment l’un de l’autre.
L’initialisation se termine avec l’instruction [Link]() qui
démarre le réceptionnaire d’évènements. Les instructions qui suivent ne
seront exécutées qu’à la sortie de cette boucle, sortie elle-même
déclenchée par la méthode [Link]().
L’option command utilisée dans l’instruction d’instanciation des
boutons permet de designer la fonction qui devra être appelée lorsqu’un
évènement ≪ clic gauche de la souris sur le widget ≫ se produira.
Les fonctions de ce script peuvent modifier les valeurs de certaines
variables qui ont été définies au niveau principal du programme. Cela est
rendu possible grâce à l’instruction global utilisée dans la définition de
ces fonctions.
Dans notre fonction changecolor(), une couleur est choisie au
hasard dans une liste. Nous utilisons pour ce faire la fonction
randrange() importee du module random. Appelée avec un argument N,
cette fonction renvoie un nombre entier, tire au hasard entre 0 et N-1.
Voici un aperçu des résultats :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
70
Introduction à la programmation avec Python
Sans avoir fait de clics sur aucun
des boutons.
Après plusieurs clics sur les deux
premiers boutons.
Le résultat est intéressant !
9.4. Méthode grid pour contrôler la disposition des widgets
Jusqu’à présent, nous avons toujours dispose les widgets dans leur
fenêtre a l’aide de la méthode pack(). Cette méthode présentait
l’avantage d’être extraordinairement simple, mais elle ne nous donnait
pas beaucoup de liberté pour disposer les widgets à notre guise.
Nous voulons réaliser les widgets suivants :
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
71
Introduction à la programmation avec Python
Voici les codes
Dans ce script, nous avons donc remplace la méthode pack() par la
méthode grid(). Comme vous pouvez le constater, l’utilisation de la
méthode grid() est très simple. Cette méthode considère la fenêtre
comme un tableau (ou une grille). Il suffit alors de lui indiquer dans
quelle ligne (row) et dans quelle colonne (column) de ce tableau on
souhaite placer les widgets. On peut numéroter les lignes et les colonnes
comme on veut, en partant de zéro, ou de un, ou encore d’un nombre
quelconque : tkinter ignorera les lignes et colonnes vides. Notez
cependant que si vous ne fournissez aucun numéro pour une ligne ou
une colonne, la valeur par défaut sera zéro.
9.5. Un exemple sur la détection d’un clic de la souris
Voici un petit exercice qui vous aidera à comprendre comment se
fait la gestion d’événements avec tkinter.
La fenêtre ci-dessous contient un cadre, (Frame) comme premier
widget. Ensuite elle a un Label. Nous voulons que, lorsque l’on clique sur
n’importe quel endroit du Frame, on affiche sur l’étiquette un message
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
72
Introduction à la programmation avec Python
indiquant le clic ainsi que les coordonnées du pointeur de la souris sur le
Frame. Voici la fenêtre, sans clic.
Voici le script permettant de réaliser l’objectif que nous avons annoncé :
Dans la définition de la fonction ≪ pointeur ≫, vous aurez
remarque que nous avons fourni un argument event (entre les
parenthèses). Cet argument est obligatoire. Lorsque vous définissez une
fonction gestionnaire d’évènement qui est associée a un widget
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
73
Introduction à la programmation avec Python
quelconque a l’aide de sa méthode bind(), vous devez toujours l’utiliser
comme premier argument. Cet argument désigne en effet un objet créé
automatiquement par tkinter, qui permet de transmettre au gestionnaire
d’évènement un certain nombre d’attributs de l’évènement :
Le type d’évènement: déplacement de la souris, enfoncement ou
relâchement de l’un de ses boutons, appui sur une touche du
clavier, entrée du curseur dans une zone prédéfinie, ouverture ou
fermeture d’une fenêtre, etc.
Une série de propriétés de l’évènement: l’instant où il s’est produit,
ses coordonnées, les caractéristiques du ou des widget(s)
concerne(s), etc.
Voici le résultat en image :
Le script fait apparaitre une fenêtre contenant un cadre (Frame)
rectangulaire de couleur noire, dans lequel l’utilisateur est invite à
effectuer des clics de souris.
La méthode bind() du widget cadre associe l’évènement <clic à
l’aide du premier bouton de la souris> au gestionnaire d’évènement ≪
pointeur ≫.
Ce gestionnaire d’évènement peut utiliser les attributs x et y de
l’objet event génère automatiquement par tkinter, pour construire la
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
74
Introduction à la programmation avec Python
chaine de caractères qui affichera la position de la souris au moment du
clic.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
75
Introduction à la programmation avec Python
CARNET D’EXERCICES
1. Ecrire un programme qui demande un nombre à l’utilisateur, puis
qui calcule et affiche le carré de ce nombre.
2. Ecrire un programme qui demande un nombre à l’utilisateur, et
l’informe ensuite si ce nombre est positif ou négatif (on laisse de
côté le cas où le nombre vaut zéro).
3. Ecrire un programme qui demande deux nombres à l’utilisateur et
l’informe ensuite si leur produit est négatif ou positif (on laisse de
côté le cas où le produit est nul). Attention toutefois : on ne doit
pas calculer le produit des deux nombres.
4. Ecrire un programme qui demande un nombre à l’utilisateur, et
l’informe ensuite si ce nombre est positif ou négatif (on inclut cette
fois le traitement du cas où le nombre vaut zéro).
5. Ecrire un programme qui demande deux nombres à l’utilisateur et
l’informe ensuite si le produit est négatif ou positif (on inclut cette
fois le traitement du cas où le produit peut être nul). Attention
toutefois, on ne doit pas calculer le produit !
6. Un monsieur de reprographie facture 75 FC les dix premières
photocopies, 50 FC les vingt suivantes et 35 FC au-delà. Ecrivez un
programme qui demande à l’utilisateur le nombre de photocopies
effectuées et qui affiche la facture correspondante.
7. Ecrire un programme qui demande un nombre compris entre 10 et
20, jusqu’à ce que la réponse convienne. En cas de réponse
supérieure à 20, on fera apparaître un message : « Plus petit ! »,
et inversement, « Plus grand ! » si le nombre est inférieur à 10.
8. Ecrire un programme qui demande un nombre de départ, et qui
ensuite affiche les dix nombres suivants. Par exemple, si
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
76
Introduction à la programmation avec Python
l'utilisateur entre le nombre 17, le programme affichera les
nombres de 18 à 27.
9. Ecrire un algorithme qui demande un nombre de départ, et qui
ensuite écrit la table de multiplication de ce nombre, présentée
comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
…
7 x 10 = 70
10. Ecrire un programme qui demande un nombre de départ, et
qui calcule la somme des entiers jusqu’à ce nombre. Par exemple,
si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la
décomposition du calcul.
11. Ecrire un programme qui demande un nombre de départ, et
qui calcule sa factorielle.
12. NB : la factorielle de 8, notée 8 !, vaut
1x2x3x4x5x6x7x8
13. Ecrire un programme qui demande successivement 10
nombres à l’utilisateur, et qui lui dise ensuite quel était le plus
grand parmi ces 10 nombres :
Entrez le nombre numéro 1: 12
Entrez le nombre numéro 2: 14
etc.
Entrez le nombre numéro 10 : 6
Le plus grand de ces nombres est : 14
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
77
Introduction à la programmation avec Python
14. Modifiez ensuite programme pour que le programme affiche
de surcroît en quelle position avait été saisie ce nombre :
C’était le nombre numéro 2
15. Ecrivez un programme permettant à l’utilisateur de saisir un
nombre quelconque de valeurs, qui devront être stockées dans un
tableau. L’utilisateur doit donc commencer par entrer le nombre de
valeurs qu’il compte saisir. Il effectuera ensuite cette saisie. Enfin,
une fois la saisie terminée, le programme affichera le nombre de
valeurs négatives et le nombre de valeurs positives.
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
78
Introduction à la programmation avec Python
BIBLIOGRAPHIE
1. Fush Patrick + Poulain Pierre, Cours de Python, Université de Paris,
Paris, 2020
2. Swinnen Gérard, Apprendre à programmer avec Python 3, Creative
Commons, 2012
3. Lecroq Thierry, Introduction à la programmation en Python¸
Université de Rouen, Rouen
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
79
Introduction à la programmation avec Python
TABLE DES MATIERES
INTRODUCTION ............................................................................. 1
Programme et programmation ................................................... 3
Le langage de programmation .................................................... 4
Catégories des langages de programmation ........................... 4
Niveaux des langages de programmation ............................... 6
Historique du langage Python .................................................... 7
Que doit-on avoir pour programmer en Python ? ..................... 8
Présentation de l’environnement de développement ............... 9
Lancement de la fenêtre d’accueil de PyCharm Community et
paramétrage d’un nouveau projet ........................................... 9
Lancement de test d’une application ......................................11
Chapitre 1. NOTIONS DE BASE DE LA CODIFICATION EN
PYTHON.......................................................................................... 12
Les variables ............................................................................... 12
Nom de variable .......................................................................12
Types de variables ...................................................................13
Contenu d’une variable ............................................................ 14
Affectation de valeur dans une variable .................................14
Les commentaires ....................................................................... 15
Les instructions de lecture et d’écriture ................................... 16
Print() pour l’écriture .............................................................. 16
Input() pour la lecture ............................................................. 17
Les opérateurs ............................................................................ 18
Travail pratique .......................................................................... 26
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
80
Introduction à la programmation avec Python
Chapitre 3. LES INSTRUCTIONS DE TESTS OU CONDITIONS ..... 27
3.1. L’instruction IF… : ............................................................... 27
3.1.1. IF… : avec une condition ..............................................27
3.1.2. IF…THEN avec plusieurs conditions ............................. 28
3.1.3. IF… : …ELSE : (instructions alternatives) ................... 29
3.1.4. IF…THEN…ELSEIF (conditions et instructions
alternatives) .............................................................................29
3.1.5. Imbrication des IF ......................................................... 30
3.2. Respect des règles de syntaxe ........................................... 32
Travail pratique .......................................................................... 32
Chapitre 4. LES LISTES ................................................................. 33
4.1. Introduction sur les listes ................................................... 33
4.2. Opérations sur les listes ...................................................... 34
4.2.1. Les tranches ...................................................................34
4.2.1. Les fonctions len(), range() et list()............................. 35
4.2.3. Les listes de listes .......................................................... 36
4.2.4. Somme d’une liste, maximum, minimum ..................... 36
4.3. Eléments complémentaires sur les listes ........................... 36
4.4. Travail pratique ................................................................... 37
Chapitre 5. LES BOUCLES .............................................................. 38
5.1. La boucle WHILE ................................................................. 38
5.2. La boucle FOR ...................................................................... 39
5.3. Exercice d’application 1 ...................................................... 40
5.4. Exercice d’application 2 ...................................................... 42
5.5. Travail pratique ................................................................... 43
Chapitre 6. TRAITEMENT DES CHAINES DE CARACTERES ......... 44
6.1. La fonction REPLACE () ....................................................... 44
6.2. La fonction Upper() et la fonction Lower() ....................... 44
6.3. La méthode split() ............................................................... 45
6.3. Les méthodes find(), count(), startswith() et strip() ....... 45
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
81
Introduction à la programmation avec Python
6.4. Fonctions de conversion ..................................................... 46
5.4.1. Conversion d’une chaîne de caractères en nombre .....46
5.4.2. Conversion d’une valeur en une chaîne de caractères 47
5.4.3. Conversion d’une liste des chaînes de caractères en
une chaîne de caractères ......................................................... 47
6.5. Extraire des caractères dans une chaîne ........................... 47
6.6. Exercice d’application ......................................................... 48
6.7. Travail pratique ................................................................... 49
Chapitre 7. LES FONCTIONS ......................................................... 51
7.1. Définir une fonction ............................................................ 51
7.2. Passage d’arguments .......................................................... 52
Argument par mot-clé ............................................................. 52
7.3. Renvoi des résultats ............................................................ 52
7.4. Variables locales et variables globales .............................. 53
7.4. Les modules ......................................................................... 54
Importation des modules ........................................................ 54
7.5. Exercices d’application ....................................................... 55
7.6. Travail pratique ................................................................... 58
Chapitre 8 : LES FICHIERS............................................................ 59
8.1. Lecture d’un fichier ............................................................. 59
8.2. Ecriture dans un fichier ....................................................... 61
8.3. Travail pratique ................................................................... 62
Chapitre 9 : INTRODUCTION AUX INTERFACES GRAPHIQUES .. 63
9.1. Concepts liés à la programmation graphique .................... 64
9.2. Les classes de widgets tkinter ............................................ 65
9.3. Programmes et événements ............................................... 67
9.4. Méthode grid pour contrôler la disposition des widgets .. 71
9.5. Un exemple sur la détection d’un clic de la souris ............ 72
CARNET D’EXERCICES................................................................... 76
BIBLIOGRAPHIE ............................................................................ 79
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
82
Introduction à la programmation avec Python
TABLE DES MATIERES ................................................................... 80
CT. N’simba Zoka Patrick et Ass. Jabin Muzir
83