0% ont trouvé ce document utile (0 vote)
14 vues128 pages

MIP- Cours Algorithmique Programmation PYTHON Partie 2 Programmation Python

Transféré par

Ghita Ghita
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues128 pages

MIP- Cours Algorithmique Programmation PYTHON Partie 2 Programmation Python

Transféré par

Ghita Ghita
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 128

Algorithmique

&
Programmation en Python
de
l’algorithmique vers python

02/12/2023 2
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique

- Introduction Partie II. Programmation en


langage Python
- Etapes de résolution d’un
problème - Introduction
- De l’algorithme au programme - Les bases de la programmation
informatique en python
- Structure d’un algorithme - Les instructions élémentaires
- Les données - Les instructions de contrôle
- Les instructions de base - Les tableaux
- Les instructions de contrôle :
Structures conditionnelles
Structures répétitives
- Les tableaux
LES BASES DE LA
PROGRAMMATION EN Python

02/12/2023 4
Rappel
Qu’est-ce que la programmation?

➢ La programmation représente usuellement le codage,


c’est-à-dire la rédaction du code source d’un logiciel.

➢ Un programme est une liste d’instructions


écrites pour résoudre un problème, ou pour
effectuer une action.
4
Rappel

C’est quoi un langage de


programmation?
Un langage de programmation est un langage informatique,
permettant à un être humain d'écrire un code source qui sera analysé par
une machine, généralement un ordinateur.
Il est construit d’une grammaire formelle, qui inclut des symboles
et des règles syntaxiques, auxquels on associe des règles sémantiques.

Exemple :
C, Python, C#, C++, Java, PHP...
Rappel

Types de Langage de programmation

▪Langage compilée
▪Langage interprété
▪Langage de bas niveau
▪Langage de haut niveau
Rappel

A quoi sert un langage Compilé ?


➢ Code source est le texte du programme.
➢ Compilateur examine les instructions écrites par le programmeur et les transforme en langage binaire,
compréhensible par le processeur.

➢ Traduction en binaire du code source génère un programme exécutable par l’ordinateur, Ce travail est
réalisé par un programme spécialisé appelé compilateur.
Rappel

A quoi sert un langage Interprété ?


❑ Code source est exécuté directement ligne par ligne sans la nécessité de la phase de compilation, il est
interprété, par un logiciel qu'on appelle interpréteur.

❑ Interpréteur Python, c'est l'application avec laquelle vous allez exécuter votre script Python.
❑ Langage interprété, c'est donc tout d'abord un langage qui a besoin d'un interpréteur pour
fonctionner.
Rappel

Langage de haut niveau vs Langage de Bas niveau

➢ Les langages bas niveau sont compacts et


nécessitent moins d’espace mémoire.
➢ Les langages haut niveau utilisent des
interpréteurs qui nécessitent un grand espace
mémoire.
Langages de Programmation les plus populaires

11
Introduction
Qu’est-ce que Python?

Langage de programmation
Créé par Guido van Rossum en 1991
Haut niveau
Interprété
Histoire de Python

Décembre 1989 2018


Création de Python Python est devenu le
langage de programmation
le plus populaire
Guido van Rossum

Février 1991
Publication de la 1ère
version
13

02/12/2023
Introduction
Pourquoi devriez-vous apprendre Python?

Syntaxe simple et facile

Installable facilement

Adapté à des projets de petite et grande envergure

Larges bibliothèques de modules standards

Portable
A quoi sert la portabilité de Python?
➢ Python est portable, non seulement sur les différentes variantes d'Unix, mais aussi
sur les OS propriétaires: MacOS, BeOS, NeXTStep, MS-DOS et les différentes
variantes de Windows.
Caractéristiques clés de Python

langage de
Haut niveau interprété

fonctionne sur un code avec


différentes moins de lignes
plates-formes
procédurale,
orientée objet ou
fonctionnelle
16

02/12/2023 16
Domaines d’applications
Image processing

Intelligence Web application


Artificielle
Data science et Game
Big data développement

Video processing 14
Classement IEEE de python en 2022

02/12/2023 18
Entreprises utilisent Python

02/12/2023 19
Principales bibliothéques

02/12/2023 20
Installation
➢ Lien d’installation :
https://docs.anaconda.com/anaconda/install/windows/
Installation
ANACONDA

➢ Anaconda est une distribution Python qui intègre la plateforme Jupyter pour
faciliter l'écriture, l'exécution et la visualisation de code Python.
➢ Notebook Jupyter permettent d'interagir avec le code pas à pas, en exécutant des
cellules individuelles à la fois.
➢ Cela permet aux utilisateurs d'observer les résultats de chaque instruction en
temps réel, ce qui en fait un outil très utile pour le prototypage rapide,
l'exploration de données et la communication des résultats.
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique

- Introduction Partie II. Programmation en


langage Python
- Etapes de résolution d’un
problème - Introduction
- De l’algorithme au programme - Les bases de la programmation
informatique en python
- Structure d’un algorithme - Les instructions élémentaires
- Les données - Les instructions de contrôle
- Les instructions de base - Les tableaux
- Les instructions de contrôle :
Structures conditionnelles
Structures répétitives
- Les tableaux
Python se caractérise par son
typage dynamique
 Quand un programme doit déclarer le type
de chaque variable de manière explicite ,
on parle d’un typage statique ?
statique

• lorsque programmeur n'est pas tenu de spécifier


le type de chaque variable de manière explicite,
on dit que le typage est dynamique

24
02/12/2023 24
Les variables:

une variable est un espace de stockage nommé qui permet de conserver


une valeur en mémoire. Cette valeur peut être de différents types, comme
un nombre, une chaîne de caractères, un booléen, un objet, etc.

02/12/2023 25
Nom de variables
Attention!
• N'utilisez jamais de symboles spéciaux tels que !, @, #, $,
%, etc.
• Ne commencez pas un nom de variable par un chiffre.
• Python est sensible à la casse (différencier entre majuscule et
minuscule (VAR est différente de var)
Variables et Constantes
❖ Type de variable
• entier (python:int) pour manipuler des entiers
• réel (python: float) pour manipuler des nombres réels
• booléen (python: bool) pour manipuler des valeurs booléennes
• Caractère (python: str) pour manipuler des caractères alphabétiques ou
numériques. On peut manipuler des chaînes de caractères permettant de
représenter des mots ou des phrases.

02/12/2023 27
Les opérateurs
Les opérateurs
Les opérateurs de
arithmétiques
comparaison Les opérateurs logiques
+ Addition
== L’égalité
And renvoie True si les
- Soustraction deux opérandes
<= Inférieur ou
sont True.
* Multiplicatio égale
n >= Supérieur ou Or renvoie True si au
/ Division égale moins un des deux
> Supérieur opérandes est
% Modulo strictement True.
< Inférieur Not renvoie l'inverse
** Puissance
strictement d'une valeur
!= La différence booléenne.
+= Addition et
afféctation

02/12/2023 28
Les opérateurs

02/12/2023 29
Déclaration des variables:

Exemple:

Syntaxe:

02/12/2023 30
Remarque :

Notez bien:
On peut utiliser les
formes courtes pour
simplifier des
opérations

02/12/2023 31
Types de Variables
Fonction « type(x) »:
• Pour vérifier le type d'une variable nommée x, tapez simplement la fonction : type(x).
• Vous allez voir plus tard ce que signifie le mot class.
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique

- Introduction Partie II. Programmation en


langage Python
- Etapes de résolution d’un
problème - Introduction
- De l’algorithme au programme - Les bases de la programmation
informatique en python
- Structure d’un algorithme - Les instructions élémentaires
- Les données - Les instructions de contrôle
- Les instructions de base - Les tableaux
- Les instructions de contrôle :
Structures conditionnelles
Structures répétitives
- Les tableaux
Initialisation, Affectation et Comparaison
Initialisation et Affectation:
• Le symbole d’affectation est le signe “=”.
• Lors d’une affectation, Python crée à la fois la valeur et la variable qui
pointe vers cette valeur.

• Pour affecter une valeur à une variable, c'est-à-dire l'initialiser ou modifier


sa valeur, on utilise l'opérateur d'affectation (=).
• À gauche de l'opérateur, on retrouve le nom de la variable et à droite la
valeur qu'on souhaite lui affecter.
• Pour accéder au contenu d'une variable, il suffit d'utiliser son nom.

02/12/2023 34
Initialisation, Affectation et Comparaison

• Affectations simultanées

• comparaison :
B== 10 ➔ égalité (pour des nombres ou des chaînes). Il s’agit de l’opérateur de
comparaison

02/12/2023 35
Réaffecter une valeur à une variable :

a=3
a = ‘’welcome ’’
Print (a) ➔ welcome

02/12/2023 36
Affectation de plusieurs valeurs à plusieurs variables
• Si on veut assigner plusieurs valeurs à plusieurs variables, on peut écrire :

• Si nous voulons affecter la même valeur à plusieurs variables à la fois, nous


pouvons écrire :

02/12/2023 37
Type de Variables
La fonction type(x):
• Pour vérifier le type d'une variable nommée x, tapez simplement la fonction
:type(x). Vous verrez plus tard ce que signifie le mot class.

02/12/2023 38
Commentaires

• Les commentaires sont très importants lors de l'écriture d'un programme.


• Ils décrivent ce qui se passe à l'intérieur d'un programme, de sorte qu'une
personne regardant le code source n'ait pas de mal à le comprendre.
• Les commentaires sont destinés aux programmeurs pour mieux comprendre
un programme.
• L’interpréteur Python ignore les commentaires

• Commentaire sur une ligne


( # au début de la ligne)

• Commentaire sur plusieurs liges


paragraphe entre """
02/12/2023 39
Les instructions d’Entrée /Sortie

L’instruction de sortie (affichage à l’écran)


La fonction intégrée print() sert d'instruction de sortie en
Python. Il renvoie la valeur de toute expression Python.

Syntaxe

02/12/2023 40
Les instructions d’Entrée /Sortie
L’instruction de sortie (affichage à l’écran)
Exemple :

Affichage :

02/12/2023 41
Les instructions d’Entrée /Sortie
L’instruction de sortie (affichage à l’écran)

Remarque:

On écrit Print("bonjour" , nom) ou print(" bonjour " + nom)

02/12/2023 42
Les instructions d’Entrée /Sortie

L’instruction d’entre
La fonction input() en Python permet à l'utilisateur de saisir des données à
partir du clavier et renvoie ces données sous forme de chaîne de caractères.
En Python, la fonction d'entrée est utilisée pour demander à l'utilisateur
d'entrer une valeur. Celui-ci va être capturé sous forme de chaîne.
Synthaxe :

02/12/2023 43
Exemples : Saisie utilisateur
Exemple :

Syntaxe:
Affichage :

02/12/2023 44
Ecriture formatée
 Permet d'afficher des variables avec un certain format, par
exemple justifiées à gauche ou à droite, ou encore avec un
certain nombre de décimales pour les floats.

 f-string est le diminutif de formatted string literals.


À la place des chaînes de caractères ou encore strings qui
étaient représentées par un texte entouré de guillemets
simples ou doubles.
"bonjour " est remplacé par : f"bonjour"

02/12/2023 45
Ecriture formatée
 f-strings permettent une meilleure organisation de
l'affichage des variables.

Exemple :

Attention:

02/12/2023 46
Ecriture formatée

Remarque:
il est possible de mettre entre les accolades des valeurs
numériques ou des chaînes de caractères :

02/12/2023 47
Ecriture formatée

Les décimaux :

Nous pouvons spécifier dans les accolades {} le format qui vous intéresse.
Dans le cas présent, vous voulez formater un float pour l'afficher avec deux
puis trois décimales :
>>> Var = 22 / 7
>>> print(f"La valeur de Pi est {Var:.2f}")
La valeur de Pi est 3.14
>>> print(f"La valeur de Pi est {Var:.3f}")
La valeur de Pi est 3.142

Remarque : le formatage avec .xf (x étant un entier positif) renvoie un


résultat arrondi.

02/12/2023 48
Ecriture formatée

Les entiers :

Vous pouvez aussi formater des entiers avec la


lettre d (ici d veut dire decimal integer)

>>> nb = 230
>>> print(f"Ce nombre est {nb:d} ")
Ce nombre est 230

02/12/2023 49
Ecriture formatée
Il est possible de préciser sur combien de caractères un résultat est écrit
et comment se fait l'alignement (à gauche, à droite ou centré).

> spécifie un alignement à droite et < spécifie un alignement à gauche

02/12/2023 50
Ecriture formatée
Il est possible de préciser sur combien de caractères un résultat est écrit
et comment se fait l'alignement (à gauche, à droite ou centré).

^ spécifie un alignement centré.

02/12/2023 51
Ecriture formatée

Il est possible d'indiquer le caractère par lequel vous allez remplir lors des
alignements (l'espace est le caractère par défaut).

02/12/2023 52
Ecriture formatée

Autre exemple

02/12/2023 53
Ecriture formatée

Ce formatage est également possible sur des chaînes de caractères


avec la lettre s (comme string) :

>>> print("SAEL Nawal")


SAEL Nawal
>>> print(f"SAEL {‘Nawal’:>9s}")
SAEL Nawal

Attention :
Si on veut afficher des accolades littérales avec les f-strings, il faut les
doubler pour échapper au formatage

02/12/2023 54
Ecriture formatée

Remarque :
f-string est indépendante de la fonction print(). Si on donne une f-string à
la fonction print(), Python évalue d'abord la f-string et c'est la chaîne de
caractères qui en résulte qui est affichée à l'écran.

f-strings est de supporter des expressions Python au sein des


accolades. Ainsi, il est possible d'y mettre directement une opération ou
encore un appel à une fonction

02/12/2023 55
Ecriture formatée

Imbrication

Exemple

>>> name = « SAEL"


>>> age = 40

>>> f"Hello, {name.upper()}! You're {age} years old."


"Hello, SAEL! You’re 40 years old."

02/12/2023 56
Ecriture formatée

L'opérateur %
L'opérateur modulo (%) a été le premier outil de formatage de chaînes
de caractères en Python et fait partie du langage depuis le début. Voici à
quoi ressemble l'utilisation de cet opérateur dans la pratique :

02/12/2023 57
Ecriture formatée
L'opérateur %, conversion spécifiques

1 La lettre f indique à l'opérateur de convertir en nombre à virgule flottante. 2


définit la précision à utiliser lors de la conversion de l'entrée.

2 %5s pour aligner la valeur de l'âge cinq positions à droite.

02/12/2023 58
Ecriture formatée

L'opérateur %

Remarque : Le formatage avec l'opérateur modulo s'inspire du


formatage printf() utilisé en C et dans de nombreux autres langages de
programmation

02/12/2023 59
Ecriture formatée
La méthode .format
Depuis la version 2.7 de Python, La méthode str.format() est une
amélioration par rapport à l'opérateur % car elle corrige quelques
problèmes et prend en charge le mini-langage de formatage des
chaînes. Avec .format(), les accolades délimitent les champs de
remplacement.
>>> x = 40
>>> nom = « SAEL"
>>> print("{} a {} ans".format(nom, x))
SAEL a 40 ans
• les accolades vides {} précisent l'endroit où le contenu de la variable doit être
inséré.
•Juste après la chaîne de caractères, l'instruction .format(nom, x) fournit la liste
des variables à insérer, d'abord la variable nom puis la variable x.
•La méthode .format() agit sur la chaîne de caractères à laquelle elle est attachée
par le point.
02/12/2023 60
Ecriture formatée

Remarque :
Tout ce que nous avons vu avec les f-strings sur la manière de formatter
l'affichage d'une variable (après les : au sein des accolades) est
identique avec la méthode .format().

Exemple {:.2f}, {:0>6d}, {:.6e}, etc., fonctionneront de la même manière.


La différence notable est qu'on ne met pas directement le nom de la
variable au sein des accolades.

C'est l'emplacement dans les arguments passés à la


méthode .format() qui dicte quelle variable doit être remplacée. Par
exemple, dans "{} {} {}".format(bidule, machin, truc), les premières
accolades remplaceront la variable bidule, les deuxièmes la
variable machin, les troisièmes la variable truc.
02/12/2023 61
Conversion de type(casting)
Le casting en Python signifie convertir le type d'une variable. Solution :

Problème :

02/12/2023 62
Conversion de type(casting)
• Dans certains cas, nous aurons besoin de convertir notre variable d'un
type à un autre.
• En programmation, on est souvent amené à convertir les types, c'est-à-
dire passer d'un type numérique à une chaîne de caractères ou vice-
versa. En Python, rien de plus simple avec les fonctions int(),
float(),str(),bool().

02/12/2023 63
Conversion de type(casting)

Il existe plusieurs fonctions de cast en Python, qui permettent de convertir


un type de données en un autre type de données :

•int() : convertit une expression en nombre entier.


•float() : convertit une expression en nombre à virgule flottante.
•str() : convertit une expression en chaîne de caractères.
•bool() : convertit une expression en booléen.

Remarque :
Il est important de noter que toutes ces fonctions de cast ne sont pas toujours
possibles. Par exemple, on ne peut pas convertir une chaîne de caractères en
nombre entier si la chaîne ne représente pas un nombre valide. Dans ce cas,
Python lèvera une exception ValueError.

02/12/2023 64
Conversion de type(casting)
Les casting valident

Remarque : On ne peut pas convertir une chaîne de caractères en nombre entier si la


chaîne ne représente pas un nombre valide.

02/12/2023 65
Exercice
Écrivez un programme Python qui permet à l'utilisateur de saisir trois
nombres (n1, n2, n3). Ensuite, calculez la moyenne de ces trois nombres et
affichez le résultat.
Instructions :
Demandez à l'utilisateur de saisir le premier nombre (n1).
Demandez à l'utilisateur de saisir le deuxième nombre (n2).
Demandez à l'utilisateur de saisir le troisième nombre (n3).
Calculez la moyenne en ajoutant les trois nombres et en divisant par 3.
Affichez le résultat de la moyenne.

02/12/2023 66
Solution
# Demandez à l'utilisateur de saisir les trois nombres
n1 = float(input("Entrez le premier nombre : "))
n2 = float(input("Entrez le deuxième nombre : "))
n3 = float(input("Entrez le troisième nombre : "))

# Calculez la moyenne
moyenne = (n1 + n2 + n3) / 3

# Affichez la moyenne
print("La moyenne des trois nombres est :", moyenne)

02/12/2023 67
Chaîne de caractère : accès par index

La chaîne "PYTHON" a six caractères, numérotés


de 0 à 5, comme indiqué ci-dessous:
|P|Y|T|H|O|N
0 1 2 3 4 5

Donc, si vous vouliez "Y", vous pouviez simplement


taper "PYTHON" [1] (toujours compter à partir de 0!)

fifth_letter= "MONTY"[4]
Print(fifth_letter)
Y

02/12/2023 68
Les fonctions intégrées
Nous pouvons changer les chaine de caractères en utilisant les méthodes
de string qui permettent d’effectuer des tâches sur les chaînes .
Nous allons nous restreindre actuellement à :
len() : pour obtenir le nombre de caractère
Exemple :

02/12/2023 69
Les fonctions intégrées
lower() : écrire en minuscule
upper() : écrire en majuscule
Exemple :

02/12/2023 70
Les fonctions intégrées
La méthode str() transforme les nonchaînes en chaînes! Par exemple:

Exemple :

02/12/2023 71
Concaténation des String

print "SAEL " + " NAWAL "


SAEL NAWAL

02/12/2023 72
Remarques
Les fonctions intégrées au langage sont relativement peu
nombreuses: ce sont seulement celles qui sont
susceptibles d'être utilisées très fréquemment.

Les autres sont regroupées dans des fichiers séparés que


l'on appelle des modules (bibliothèque).

Les modules sont donc des fichiers qui regroupent un


ensembles de fonctions. Il existe un grand nombre de
modules pré-programmés qui sont fournis d'office avec
Python.
02/12/2023 73
Remarque (importation)
Il existe un module Python nommé math qui inclut un
certain nombre de variables et de fonctions utiles, et sqrt()
est l’une de ces fonctions.

Pour accéder aux mathématiques, il faut importer le module


import.
Exemple : import math
print math.sqrt(2)

Lorsque vous importez simplement un module de cette


façon, cela s'appelle une importation générique.

02/12/2023 74
Remarque (importation)
Il est possible d'importer uniquement certaines variables
ou fonctions d'un module donné.

On peut extraire une seule fonction d’un module s'appelle


une importation de fonction
from math import sqrt
print sqrt (2)
Pour importer tous

from math import*


print sqrt (2)
02/12/2023 75
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique

- Introduction Partie II. Programmation en


langage Python
- Etapes de résolution d’un
problème - Introduction
- De l’algorithme au programme - Les bases de la programmation
informatique en python
- Structure d’un algorithme - Les instructions élémentaires
- Les données - Les instructions de contrôle
- Les instructions de base - Les tableaux
- Les instructions de contrôle :
Structures conditionnelles
Structures répétitives
- Les tableaux
La structure if simple
 sont des instructions qui permettent à un programme d'exécuter certaines actions si
une condition spécifiée est satisfaite (vraie).

Syntaxe:

Exemple

02/12/2023 77
La structure if-else
sont des instructions qui permettent à un programme d'exécuter
certaines actions si une condition spécifiée est satisfaite (vraie), et
Exemple :
d'exécuter d'autres actions alternatives si la condition n'est pas
satisfaite (fausse).
Syntaxe:

Exemple :

02/12/2023 78
Exercices
Ecrire un programme python permettant de résoudre une équation de
la forme ax+b=0.

02/12/2023 79
Exercices
Ecrire un algorithme/programme qui permet d'imprimer le résultat d'un
étudiant à un module sachant que ce module est sanctionné par une note
d'oral de coefficient 1 et une note d'écrit de coefficient 2. La moyenne
obtenue doit être supérieure ou égale à 10 pour valider le
module.

02/12/2023 80
La structure if imbriqué
Sont des structures conditionnelles dans lesquelles un "if" est placé
à l'intérieur d'un autre "if". Cela permet d'évaluer plusieurs
conditions successivement et d'exécuter Exemple :
différents blocs de code en
fonction des résultats des différentes conditions.

Syntaxe:

02/12/2023 81
La structure if imbriqué

Exemple :

02/12/2023 82
Exercices

Ecrire un algorithme/programme qui permet de lire un


nombre puis afficher s’il est positif, négatif ou nul.

02/12/2023 83
Exercices

Ecrire un algorithme/programme qui permet de lire un


nombre puis afficher s’il est positif, négatif ou nul.

02/12/2023 84
Exercice
Ecrire un algorithme/ programme qui permet de lire 2
nombres A et B, puis afficher le plus grand des deux ou le
cas où les 2 nombres sont égaux.

02/12/2023 85
Exercice
Ecrire un algorithme/ programme qui permet de lire 2
nombres A et B, puis afficher le plus grand des deux ou le
cas où les 2 nombres sont égaux.

A=float(input("entrer un nombre:"));
B=float(input("entrer un nombre:"));
D=A-B
if D>0:
print("A est le plus grand")
elif D==0:
print("A=B")
else:
print("B est le plus grand")
02/12/2023 86
La boucle for
La boucle for permet d'itérer sur une séquence Exemple (liste, : tuple,
dictionnaire, chaîne de caractères, etc.) et d'exécuter un bloc de code
pour chaque élément de la séquence.

Syntaxe:

Astuce: il est
Affichage : possible d’obtenir le
même résultat sans
donner la liste des
valeurs, mais en
87 utilisant la fonction
02/12/2023 87
range()
La boucle for
Boucle « for »:
❖ Fonction range():
• Elle permet de créer une séquence d'entiers et la séquence
peut être bouclée.
• Par défaut le pas est 1 et on commence à 0.
• Toujours, la valeur finale n'est pas incluse.
• L’instruction range (a,b,pas) permet de créer une liste L
croissante ou décroissante d’entiers successifs .
Syntaxe

Example:
10
for i in range(10,20,3): D onne à 13
print (i); l’exécution: 16
else: 19
print("Sortie de la boucle avec i=",i); Sortie de la boucle avec
i= 19
02/12/2023 88
Exercice
Ecrire un programme permettant de calculer le factoriel
d’un nombre entier n.

02/12/2023 89
Exercice
Ecrire un programme permettant de calculer le factoriel
d’un nombre entier n.
n=input("donnez la valeur de n")
fact=1
for i in range(1,int(n)+1,1):
fact=fact*i

print(f"le factoriel de {int(n)} est


{fact}")

02/12/2023 90
Exercice
Ecrire un programme permettant de calculer la valeur de
np, avec n et p des entiers positifs.

02/12/2023 91
Exercice
Ecrire un programme permettant de calculer la valeur de
np, avec n et p des entiers positifs.

n=input("donnez la valeur de n ")


p=input("donnez la valeur de p")
Pnp=1
for i in range(1,int(p)+1,1):
Pnp = Pnp *int(n)

print(f"le factoriel de {int(n)} est {Pnp}")

02/12/2023 92
La boucle while

La boucle "while" en Python exécute un bloc de code tant qu'une


condition est vraie.

Syntaxe:

02/12/2023 93
Instructions répétitives

Boucle « while »:

L’exemple de la machine à café


Exemple:
rep=input("voulez vous un café: o/n")
print(rep)
while(rep != "o") and (rep != "n"):
rep=input("voulez vous un café: o/n")

print("vous avez choisi", rep)

02/12/2023 94
Exercice
Ecrire un programme permettant de lire une valeur
entière N (positive ou négative) et qui fournit le nombre
de chiffres de N comme résultat.

02/12/2023 95
Exercice
Ecrire un programme permettant de lire une valeur
entière N (positive ou négative) et qui fournit le nombre
de chiffres de N comme résultat.

02/12/2023 96
Exercice
 Ecrire un algorithme qui demande un nombre de
départ, et qui calcule sa factorielle. (en utilisant for
puis while)
NB : la factorielle de 8, notée 8 !, vaut
1x2x3x4x5x6x7x8

02/12/2023 97
 Boucle for

n=int(input("entrez la valeur de n"))


p=1
for i in range(1,n+1):
p=p*i
print(f"la valeur du factoriel est {p}")

02/12/2023 98
 Boucle while

n=int(input("entrez la valeur de n"))


p=1
i=1
while i<=n:
p=p*i
i+=1
print(f"la valeur du factoriel est {p}")

02/12/2023 99
Instruction « break » et « continue »
• En Python, Les instructions break et continue peuvent modifier le flux
d’une boucle normale.
• Les boucles parcourent un bloc de code jusqu’à ce que la condition soit
fausse, mais nous souhaitons parfois mettre fin à l’itération en cours ou
même à la totalité de la boucle sans vérifier la condition.

02/12/2023 100
Instruction « break » et « continue »
Instruction « break » :

• Break est utilisé pour quitter une boucle while/for.


Exemple : O n utilise la boucle « while »

Résultat

Exemple :O n utilise la boucle « for »

Résultat

02/12/2023 101
Instruction « break » et « continue »
Instruction « continue » :
continue est utilisé pour ignorer le bloc actuel et revenir à
l’instruction
while/for.

Exemple : O n utilise la boucle « Exemple : O n utilise la boucle


while » « for »
Résultat

02/12/2023 102
Exercice
1 Ecrire un programme python qui propose une boucle
for pour afficher les chiffres de 1 à 10

2 Placez une instruction break dans de manière à ce


qu'elle n'imprime que de 0 à 7 (7 inclus).

02/12/2023 103
Exercice
1 Ecrire un programme python qui propose une boucle
for pour afficher les chiffres de 0 à 10
for i in range(10):
print(i)
2 Placez une instruction break dans de manière à ce
qu'elle n'imprime que de 0 à 7 (7 inclus).
for i in range(10):
print(i)
if i == 7:
break

02/12/2023 104
Exercice
Pour le même exercice précédent, Ajoutez une instruction
if et une instruction continue à la boucle pour qu'elle
saute lorsque l'itérateur est égal à 7

for i in range(10):
if i == 7:
continue
print(i)

02/12/2023 105
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique

- Introduction Partie II. Programmation en


langage Python
- Etapes de résolution d’un
problème - Introduction
- De l’algorithme au programme - Les bases de la programmation
informatique en python
- Structure d’un algorithme - Les instructions élémentaires
- Les données - Les instructions de contrôle
- Les instructions de base - Les tableaux et structures
- Les instructions de contrôle :
Structures conditionnelles
Structures répétitives
- Les tableaux
Les Tableaux à une dimension
Comme tous les langages, Python permet d'utiliser des "tableaux". On nomme ainsi
tableau tout ensemble d'éléments de même type désigné par un identificateur
unique; chaque élément est repéré par un "indice" précisant sa position au sein de
l'ensemble.

1 Déclarer un tableau
from array import array
X = array('i') # tableau d’entiers (int)
X = array(‘f') # tableau de réels (float)

2 Affecter des valeurs dans des cases


syntaxe : nom_tableau[numero_case] = valeur ;
La numérotation des cases s'effectue de 0 à nb_cases-1.

3 Accéder à la valeur d'une case d'un tableau syntaxe : nom_tableau[numero_case]

4 Ajout d’un élément à la fin: syntaxe : nom_tableau.append(valeur à ajouter)

5 compter le nombre d’éléments : syntaxe : len(nom_tableau)


107
Les Tableaux à une dimension
6. suppression:
from array import array; X = array('i');
X.append(2); X.append(1); X.append(12); X.append(3); X.append(0);
Print(X)
➔array('i', [2, 1, 12, 3, 0])
del(X[2]); print(X)
➔array('i', [2, 1, 3, 0])

7. inverser un tableau:
X.reverse(); print(X)
➔array('i', [0, 3, 2, 1])

8. insertion dans un tableau:


X.insert(1,555); print(X) # insère la valeur 555 dans la position 1
➔array('i', [0, 555,3, 2, 1])

9. Tri d’un tableau: 10. existance d’un élément:


X=sorted(X); print(X) 3 in X
➔ array('i', [0, 1, 2, 3, 555]) ➔ True 108
108
Exercice : Manipulation de tableau
Écrivez un programme Python qui fait ce qui suit :
Crée un tableau appelé tableau et ajoute les entiers de 1 à 10 inclus
dans cette liste.
Affiche le tableau.
Affiche le premier élément du tableau.
Affiche le dernier élément du tableau.
Affiche une sous-liste contenant les éléments du tableau du 3e au 7e
inclus.
Remplace le deuxième élément par -1.
Supprime le numéro 5 du tableau.
Affiche le tableau finale.

02/12/2023 109
Les listes
Définition d'une liste
C’est une collection ordonnée et modifiable d’éléments éventuellement
hétérogènes.
>>> nombres = [5, 38, 10, 25]
>>> mots = ["fromage", "confiture", "chocolat"]
>>> L= [5000, "Big Data", 3.1416, ["Bon", "Jour", 1947]]

Dans le dernier exemple ci-dessus, nous avons rassemblé un entier, une


chaîne, un réel et même une liste, pour vous montrer que l'on peut
combiner dans une liste des données de n'importe quel type, y compris
des listes.

110
Les listes
Accès aux éléments d’une
Pour accéder aux éléments d'une liste, on utilise les mêmes méthodes
(index, découpage en tranches)

ma_liste[début:fin]: l'élément à l'indice "début" est inclus et l'élément à


l'indice "fin" n'est pas inclus dans la sous-liste résultante.

Exemple liste (nombres = [5, 38, 10, 25])

>>> print(nombres[2]) >>> print(nombres[-1])


10 25
>>> print(nombres[1:3]) >>> print(nombres[-2])
[38, 10] 10
>>> print(nombres[2:3])
[10]
>>> print(nombres[2:])
[10, 25]
>>> print(nombres[:2])
[5, 38] 111
Les listes sont modifiables

Les listes sont des séquences modifiables.


Exemples :
>>> nombres[0] = 17
>>> print(nombres)
[17, 38, 10, 25]

112
Les listes sont des objets
Sous Python, les listes sont des objets pour lesquels on peut appliquer des
méthodes (fonctions) particulièrement efficaces. En voici quelques-unes :

>>> nombres = [17, 38, 10, 25, 72]


>>> nombres.sort() # trier la liste
>>> nombres
[10, 17, 25, 38, 72]
>>> nombres.append(12) # ajouter un élément à la fin
>>> nombres
[10, 17, 25, 38, 72, 12]
>>> nombres.reverse() # inverser l'ordre des éléments
>>> nombres
[12, 72, 38, 25, 17, 10]

113
>>> nombres.index(17) # retrouver l'index d'un élément
4
>>> nombres.remove(38) # enlever (effacer) un élément
>>> nombres
[12, 72, 25, 17, 10]

En plus de ces méthodes, vous disposez encore de l'instruction intégrée


del, qui vous permet d'effacer un ou plusieurs éléments à partir de leur(s)
index :
>>> del(nombres[2])
>>> nombre
s[12, 72, 17, 10]
>>> del(nombres[1:3])
>>> nombres
[12, 10]

114
Insertion d'un ou plusieurs éléments n'importe où dans une liste
>>> mots = ['jambon', 'fromage', 'confiture', 'chocolat’]

>>> mots[2:2] =["miel"] # équivalent à mots=mots[:2] + ["miel"] +


mots[2:]
>>> mots
['jambon', 'fromage', 'miel', 'confiture', 'chocolat']
>>> mots[5:5] =['saucisson', 'ketchup']
>>> mots
['jambon', 'fromage', 'miel', 'confiture', 'chocolat', 'saucisson', 'ketchup']

115
Suppression/remplacement d'éléments

>>> mots[2:5] = [] # [] désigne une liste vide


>>> mots
['jambon','fromage','saucisson', 'ketchup‘]
>>> mots[1:3] = ['salade']
>>> mots['jambon', 'salade', 'ketchup']
>>> mots[1:] = ['mayonnaise', 'poulet', 'tomate']
>>> mots['jambon', 'mayonnaise', 'poulet', 'tomate']

116
Création d'une liste de nombres à l'aide de la fonction range()
>>> L=list(range(10))
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5,13))
[5, 6, 7, 8, 9, 10, 11, 12]
>>> list(range(3,16,3))
[3, 6, 9, 12, 15]

Les arguments négatifs sont autorisés :


>>> list(range(10, -10, -3))
[10, 7, 4, 1, -2, -5, -8]

117
Parcours d'une liste à l'aide de for, range() et len()
L'instruction for est l'instruction idéale pour parcourir une liste :
>>> prov = ['La','raison','du','plus','fort','est','toujours','la','meilleure']
>>> for mot in prov:
... print(mot, end =' ')

Si vous voulez parcourir une gamme d'entiers, la fonction range() s'impose :


>>> for n in range(10, 18, 3):
... print(n, n**2, n**3)...

10 100 1000
13 169 2197
16 256 4096

118
Une liste en mode compréhension :

>>>S=[i**2 for i in range(4)]


>>> S
[0, 1, 4, 9]
>>> L1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L2=[x for x in L1 if x%3==0]
>>> L2
[0, 3, 6, 9]

119
Opérations sur les listes

On peut appliquer aux listes les opérateurs + (concaténation) et *


(multiplication) :
>>> fruits = ['orange','citron']
>>> legumes = ['poireau','oignon','tomate’]

>>> fruits + legumes


['orange', 'citron', 'poireau', 'oignon', 'tomate’]

>>> fruits * 3
['orange', 'citron', 'orange', 'citron', 'orange', 'citron’]

L'opérateur * est particulièrement utile pour créer une liste de n éléments


identiques :
>>> T = [0]*7
>>> T
[0, 0, 0, 0, 0, 0, 0] 120
Opérations sur les listes

Supposons par exemple que vous voulez créer une liste B qui contient le
même nombre d'éléments qu'une autre liste A. Vous pouvez obtenir ce
résultat de différentes manières, l'une des plus simples consiste à effectuer :
B = [0]*len(A).

>>>'orange‘ in fruits
True
>>>len(fruits)
2

121
L.index(x,a,b) retourne la position de la première occurrence de x dans la
liste L entre les deux positions a et b. si b n’est pas donné la recherche
s’éffectue de la position a à la fin.

L.index(x) retourne la position de la première occurrence de x dans la liste


L (de début à la fin).
>>> T=[6,4,8,4,9,4,7,4,9]
>>> m=T.index(4)
>>> m
1
L.index(x,debut)
>>> m=T.index(4,6) à partir de la sixième position jusqu’à la fin
>>> m
7
>>> m=T.index(4,8) (si l’élément n’est pas trouvé)
Traceback (most recent call last):
File "<console>", line 1, in <module>
ValueError: 4 is not in list
>>> m=T.index(9,8)
>>> m 122
8
Liste.remove : supprime la première occurrence d'une valeur
spécifique dans la liste.

>>> T=[6,4,8,4,9,4,7,4,9]
>>> T.remove(T[3])
>>> T
[6, 8, 4, 9, 4, 7, 4, 9]

>>> del(T[2])
>>> T
[6, 8, 9, 4, 7, 4, 9]

123
la méthode pop() prend en argument l'indice de l'élément à supprimer de
la liste et retourne cet élément. Si aucun indice n'est spécifié, par défaut
pop() supprime et retourne le dernier élément de la liste.

>>> a=T.pop()
>>> a
9
>>> T
[6, 8, 9, 4, 7, 4]
>>> b=T.pop(-2)
>>> T
[6, 8, 9, 4, 4]
>>> b=T.pop(1)
>>> b
8

124
Insérer dans une liste
>>> T=[6,4,8,4,9,4,7,4,9]
>>> T.append([1,2,3]) append ajoute un élément dans la liste
>>> T
[6, 4, 8, 4, 9, 4, 7, 4, 9, [1, 2, 3]]

>>> T.extend([7,8,9]) extend : étend la liste en ajoutant d’autre élément


>>> T
[6, 4, 8, 4, 9, 4, 7, 4, 9, [1, 2, 3], 7, 8, 9]

>>> T.insert(2,10000) # insére 10000 dans la position 2 de


la liste T
>>> T
[6, 4, 10000, 8, 4, 9, 4, 7, 4, 9, [1, 2, 3], 7, 8, 9]

125
Bibliothèques mathématiques: Numpy

 Les tableaux (arrays) sont des objets fournis par le module numpy.
Contrairement aux listes ils contiennent des objets de types identiques,
comme des flottants, des complexes ou des entiers.
 L’instruction : >>> from numpy import * permet de charger en
mémoire toute la bibliothèque numpy
 >>> T = array([0.1, 3, -1, 4, 6.7]) permet de convertir la liste [0.1, 3, -1, 4,
6.7] en un tableau de type array.
 >>> M=array([[0.4, 0.9, 4],[-1.5, 2, 1./3]]) permet de construire la
matrice
[0.4, 0.9, 4]
[-1.5, 2, 1./3] à partir des deux listes [0.4, 0.9, 4] et [-1.5, 2, 1./3].

La liste =[0.4, 0.9, 4] et le tableau array([0.4, 0.9, 4]) ont le même


contenu cependant l’utilisation de la forme tableau numpy.array
permet d’exploiter plusieurs fonctions prédéfinies.
126
Exercice : Manipulation de liste
Partie 1 : Création et Modification de Listes
1. Créez une liste appelée nombres contenant les nombres de 1 à 5.
2. Ajoutez les nombres 6 et 7 à la liste.
3. Affichez la liste nombres.
Partie 2 : Accès et Modification d'Éléments
1. Accédez au troisième élément de la liste et affichez-le.
2. Modifiez le quatrième élément pour qu'il soit égal à 8.
3. Affichez à nouveau la liste nombres pour vérifier les changements.
Exercice (La suite):
Partie 3 : Suppression d'Éléments

1.Supprimez le premier élément de la liste.


2.Supprimez le dernier élément de la liste.
3.Affichez à nouveau la liste nombres après les suppressions.

Vous aimerez peut-être aussi