Intitulé du cours: Algorithme et
programmation`PYTHON`
Année de formation 2024/2025
Plan du cours
Objectifs du module
Introduction
1. Introduction au langage python
2. Structures de contrôle
3. Les fonctions
4. Types de données
5. Gestion de fichiers
2
Objectifs du module
3
 permet d'écrire des scripts(des instructions pour des programmes informatiques)
 développe la logique et la résolution de problèmes
 des compétences précieuses dans de nombreux domaines,
 pas seulement en programmation.
Introduction
4
Python est un langage de programmation (au même titre que le C, C++, fortran, java . . .),
développé en 1989. Ses principales caractéristiques sont les suivantes :
 «open-source» : son utilisation est gratuite et les fichiers sources sont disponibles et modifiables .
 simple et très lisible.
 doté d’une bibliothèque de base très fournie .
 importante quantité de bibliothèques disponibles : pour le calcul scientifique, les statistiques, les
bases de données, la visualisation .
 grande portabilité : indépendant vis à vis du système d’exploitation (linux, windows, MacOS).
 orienté objet.
 typage dynamique : le typage (association à une variable de son type et allocation zone
mémoire en conséquence).
Chapitre I:Introduction au langage python.
5
• Installer IDLE python
• Installer Thonny
• Mode interactif (calculer avec python)
• Mode script
• PyCharm
Chapitre I:Introduction au langage python.
6
Données et variables
Variable? : c’est une référence désignant une adresse mémoire; c’est-à-dire un emplacement précis
dans la mémoire vive (RAM).
A cet emplacement est stockée une valeur bien déterminée.
Exemple:
A = 5
Chapitre I:Introduction au langage python.
7
Noms de variables :
L'ensemble des symboles utilisables est donc:
• {0,1,2,...,9,A,B,...,Z,a,b,...,z}
• Les lettres accentuées
• Les caractères spéciaux tels que $, #, @, etc. sont interdits, à l'exception du caractère _
(underscore).
• Le premier caractère doit être une lettre (ou le symbole '_’)
• Python distingue les majuscules et les minuscules, ainsi: NUM,
Num et num sont des variables différentes.
Mots réservés: (à ne pas utiliser pour nommer des variables)
Tous les mots-clés sauf True, False et None sont en minuscules
Chapitre I:Introduction au langage python.
8
Types de données:
• Un type de données définit un ensemble de valeurs ainsi que des opérations pouvant être
effectuées sur ces valeurs.
• Les types de bases sont:
Entiers  int
réel  float
Chaîne de caractères  str
Déclaration  Affectation:
• nom_variable = expression
Exemple: a = 5
nom = " Foulen "
Nous ne déclarons pas le type de la variable à l’avance:
int a = 5
Chapitre I:Introduction au langage python.
9
Typage dynamique:
• Python détecte automatiquement le type de la variable
Affectations multiples:
• var1, var2, var3, ... varN = exp1, exp2, exp3, ... expN
Exemple: a , nom , b = 2 , "Foulen" , 3.5
Chapitre I:Introduction au langage python.
10
Les instructions:
• Si une instruction s'étende sur plusieurs lignes on ajoute le caractère de continuation de ligne () à la fin:
• Ceci est une continuation de ligne explicite. En Python, la continuation de la ligne est impliquée dans les
parenthèses (), les crochets [] et les accolades {}.
• Nous pourrions également mettre plusieurs instructions sur une seule ligne en utilisant des points-virgules,
comme suit:
• Pas de ; à la fin d'une instruction
Chapitre I:Introduction au langage python.
11
Les commentaires en Python:
• En Python, nous utilisons le symbole dièse(#) pour commencer à écrire un commentaire.
• Commentaires multilignes:
• Ou bien, une autre façon de faire consiste à utiliser des guillemets triples, soit ''' ou """.
Ces triples guillemets sont généralement utilisés pour les chaînes multilignes.
Chapitre I:Introduction au langage python.
12
Fonction print() :
• La façon la plus simple de produire la sortie Exemple:
a = 5 print ( a )
print ("Votre
moyenne est :
" , moy )
Fonction input() :
Nous pourrions vouloir prendre
l’information de l’utilisateur:
• Ici, la valeur entrée 5 est une chaîne, pas un nombre. Pour convertir cela en
un nombre, nous pouvons utiliser les fonctions int() ou float().
Chapitre 2. Structures de contrôle.
13
Les opérateurs en python
• Opérateurs arithmétiques (+ ,- ,* , / , % , // , ** )
• Opérateurs relationnels (== , != , > , < , >= et <=)
• Opérateurs logiques (and, or et not)
• Opérateurs d'affectation (=, +=, -=, *=, etc)
• Opérateurs spéciaux (is, is not, in, not in)
Instruction composée : en-tête, double point, bloc d'instructions indenté
• Les blocs d'instructions sont délimités par l'indentation (Toutes les lignes d'un même bloc
doivent être indentées exactement de la même manière c-à-d décalés vers la droite d'un
même nombre d'espaces).
Chapitre 2. Structures de contrôle.
14
Exercice 1:
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir deux nombres a et b et de
lui
Affiche leur somme a+b
Exercice 2:
Ecrire un programme en langage Python qui affiche les 100 premiers nombres entier
Exercice 3:
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son nombre est pair ou
impair
Exercice 4:
Nous allons écrire un programme python qui, à partir du numéro d’un mois, permet d’afficher la
saison.
Les mois sont numérotés de 1 à 12 en commençant par janvier.
Série d’exercice.
Chapitre 2. Structures de contrôle.
15
Exercice 4:
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir un nombre entier n et de
affiche si ce nombre est premier ou non
Exercice 5:
Ecrire un programme en langage Python qui permet de parcourir et afficher les caractères d’une
variable du type chaine de caractères
Exemple pour s= « Python »
Le programme affiche les caractères :
P
Y
T
H
O
N
Chapitre 2. Structures de contrôle.
16
Les instructions if-else:
• if simple:
• if-else:
• if-elif-else:
Chapitre 2. Structures de contrôle.
17
Les instructions if-else:
• if-else imbriquée:
Chapitre 2. Structures de contrôle.
18
Switch…Pas de switch jusqu’à version 3.9
A partir de la version 3.10 (4/10/2021): match case
Syntaxe:
Chapitre 2. Structures de contrôle.
19
Match case: Exemple
Chapitre 2. Structures de contrôle.
20
Les instructions répétitives – Les boucles:
Boucle while (Tant que):
• En python, la boucle while est utilisée pour exécuter un bloc d'instructions à plusieurs
reprises jusqu'à ce qu'une condition donnée soit remplie. Et lorsque la condition devient
fausse, la ligne immédiatement après la boucle dans le programme est exécutée.
• Syntaxe:
• Exemple:
Chapitre 2. Structures de contrôle.
21
Les instructions répétitives – Les boucles:
Boucle for..in:
• la boucle for est utilisée pour les parcours séquentiels. Par exemple: parcourir une liste, une
chaîne, un tableau, etc.
• En Python, il n’existe pas de style for(i = 0; i < n; i++).
• Syntaxe:
• sequence ça peux être Range, List, Tuple, Dictionnaire, une chaîne de caractères ou un
fichier.
• Le cas de range():
2. Structures de contrôle
22
Les instructions répétitives – Les boucles:
• Boucles imbriquées:
• Python permet d’utiliser une boucle dans une autre boucle (boucles imbriquées).
• Syntaxe:
Exemple
2. Structures de contrôle
23
Instructions de contrôle de boucle:
• Les instructions de contrôle de boucle modifient l'exécution normale de la séquence.
• Instruction continue : elle renvoie le contrôle au début de la boucle.
• Instruction break : Il termine la boucle courante et reprend l'exécution à la prochaine instruction après
la boucle
2. Structures de contrôle
24
Exercices:
1- Ecrire un programme python permettant d’afficher la factorielle d’un entier. On rappelle que
n!=1*2*3*…. *n-1*n avec 0!=1.
2- Ecrire un programme python Ecrire un programme python permettant de trouver et d’afficher les
nombres cubiques de 3 chiffres. Un nombre est dit cubique s’il est égal à la somme des cubes de ses
chiffres (153 est cubique car 153 = 1³ + 5³ + 3³).
3- Calculez par multiplications successives XN de deux entiers naturels X et N entrés au clavier. (Sans
utiliser la fonction pow(X, N)).
Discuter tous les cas.
3. Les fonctions
25
Définition:
• L'un des concepts les plus importants en programmation est celui de fonction
• Les fonctions permettent en effet de décomposer un programme complexe en une série de sous-
programme plus simple.
• Lorsqu’une tâche doit être réalisée plusieurs fois par un programme avec seulement des
paramètres différents, on peut l’isoler au sein d’une fonction.
• D'autre part, les fonctions sont réutilisables.
Syntaxe:
Sans indiquer les types des paramètres
3. Les fonctions
26
Notez bien les parenthèses, les deux-points, et l’indentation du bloc d’instructions qui suit la ligne
d’en-tête (c’est ce bloc d’instructions qui constitue le corps de la fonction proprement dite).Après la
définition de la fonction, on trouve le programme principal qui débute par l’instruction
print("bonjour"). Il y a ensuite au sein du programme principal, l’appel de la fonction grâce à table7().
Nous pouvons maintenant réutiliser cette fonction à plusieurs reprises, autant de fois que nous le
souhaitons.
Exemple :
3. Les fonctions
27
Nous pouvons également l’incorporer dans la définition d’une autre fonction.
Exemple:
3. Les fonctions
28
Fonction avec paramètre:
Remarque: la variable a sera affecté au paramètre base.
3. Les fonctions
29
Améliorer la fonction table afin de définir le début et la fin de la table de multiplication:
Fonctioan avec plusieurs paramètres:
Remarque: il faut respecter l'ordre des paramètres.
3. Les fonctions
30
• "q" est une variable globale, accessible même à l'intérieur des fonctions, mais non modifiable.
• On a deux variables "p", l'une est globale et l'autre locale à la fonction.
• On ne peut pas appeler une variable locale d'une fonction dans un programme ou dans une autre
fonction.
Variables locales, variables globales:
3. Les fonctions
31
Pour rendre une variable modifiable à l'intérieur des fonctions, on doit ajouter l'instruction global
Variables locales, variables globales:
3. Les fonctions
32
• La seule différence entre fonction et procédure est que la fonction retourne une ou des données, la
procédure ne retourne rien.
• Il faut commencer par la définition des fonctions puis le programme principale.
Fonctions et procédures:
Passage des paramètres:
3. Les fonctions
33
• Les paramètres sans valeur par défaut doivent précéder les autres dans la liste. La définition suivante
est incorrecte:
Valeurs par défaut pour les paramètres:
3. Les fonctions
34
On peut appeler la fonction avec les paramètres pas dans leur ordre, à condition de désigner
nommément les paramètres correspondants.
Arguments avec étiquettes:
3. Les fonctions
35
Exercices:
1- Définir une fonction maximum(n1, n2, n3)qui renvoie le plus grand de 3 nombres
n1, n2 et n3 fournis en arguments.
2- Définir une fonction nomMois(n) qui renvoie le nom de énième mois de
l'année.
3- Modifier la fonction maximum(n1, n2, n3) ci-dessus de manière à ce qu'elle puisse
être appelée avec un, deux ou trois arguments, ou même aucun argument. Utiliser pour
ceux-ci des valeurs par défaut : n1=5, n2=10 et n3=15.
4- Les chaînes de caractères
36
• Indiçage, extraction, longueur:
• -1 l’indice du dernier caractère, -2 l’avant dernier, etc…
• Pour connaître le nombre de caractère (longueur du string):
4- Les chaînes de caractères
37
Extraire une partie d’une chaîne:
 Slicing: découpage en tranches
 Consiste à indiquer entre crochets les indices correspondant au début et à la fin de la « tranche
»,
Extraction de fragments de chaînes:
• Dans la tranche [n : m], le nième caractère est inclus mais pas
le mième.
• print(nom[3:7]) ? noun

• print (nom[:3]) = print (nom[ 0 :3])
• print (nom[ 3:]) = print (nom[ 3 : len(nom)])
4- Les chaînes de caractères
38
Concaténation, répétition:
Les strings peuvent être concaténées avec + et répétés avec *
Parcours d’une chaîne:
4- Les chaînes de caractères
39
1- Ecrire une fonction trouve(chaine, car) qui devra retrouver l'index correspondant à un
caractère donné.
2- Ecrire une fonction compteCar(chaine, car) qui compte le nombre d'occurrence d'un
caractère donné dans une chaîne. Ainsi: print(comptCar("ananas au jus", "a")) devra
afficher: 4.
3- Dans un conte américain, huit petits canetons s'appellent respectivement: Jack, Kack, Lack,
Mack, Nack, Oack, Pack et Qack. Ecrivez un petit programme qui génère tous ces nom à partir des
deux chaînes suivantes: prefixes = 'JKLMNOPQ' et suffixe = 'ack'.
4- Ecrire une fonction qui recherche le nombre de mots contenus dans une phrase donnée.
Exercices:
4- Les chaînes de caractères
40
• On peut utiliser in indépendamment de for, pour vérifier si un caractère donné fait partie ou non
d’une chaîne
Appartenance d’un caractère à une chaîne:
Les chaînes sont non modifiables:
la 2éme ligne 
Exercice:
• Ecrivez une fonction estUneMaj() qui renvoie vrai si l'argument transmis est une
majuscule.
4- Les chaînes de caractères
41
Les chaînes sont comparables:
• On peut utiliser les opérateurs de comparaison (<, >, …).
NB: Cela ne fonctionne que pour les mots qui sont entièrement en minuscules ou entièrement en
majuscules, et qui ne comporte aucun caractère accentué.
Accéder à d’autre caractères que ceux du clavier:
• Tous les caractères possèdent leur identifient numérique universel Unicode. Pour y
accéder:
• Ord("A")  65
• Chr(66)  'B'
4- Les chaînes de caractères
42
Les chaînes sont des objets:
Sous python, les chaînes sont des objets, qui ont des méthodes. Les plus utiles sont:
split(): convertit une chaîne en une liste de sous-chaîne. On peut choisir le caractère séparateur.
split() #par défaut le séparateur est l'espace
split(",") #le séparateur est le,
4- Les chaînes de caractères
43
Les chaînes sont des objets:
• join(liste) : rassemble une liste de chaînes en une seule. "séparateur".join(liste)
• find(sch): cherche la position d'une sous-chaîne sch dans la chaîne
• count(sch): compte le nombre d'apparition de sch dans la chaîne
4- Les chaînes de caractères
44
Les chaînes sont des objets:
• lower(): convertir une chaîne en minuscule.
• upper(): convertir une chaîne en majuscule.
• title(): convertir en majuscule l'initiale de chaque mot.
• capitalize(): convertir seulement la première lettre de la chaîne.
• swapcase(): convertir toutes les majuscules en minuscules et vice- versa.
• strip(): enlêve les espaces éventuels au début et à la fin de la chaînes.
• replace(c1,c2): remplace tous les caractères c1 par c2.
• index(car): retrouve l'indice de la première occurrence du car. index("e",5): cherche à partir
de l'indice 5.
• NB: Il existe d'autres fonctions.
4- Les chaînes de caractères
45
Fonctions intégrées:
len(ch): renvoie la longueur de ch.
float(ch): convertir la chaîne ch en un nombre réel.
int(ch)
str(obj): convertir l'objet obj en une chaîne de caractère.
Exercice:
Ecrire une fonction qui compte le nombre de mots contenus dans une phrase.
4- Les chaînes de caractères
46
Formatage des chaînes de caractères:
• Utilisé pour construire une chaîne complexe à partir d'un certain nombre de morceaux.
• 1-
• ou bien
4- Les chaînes de caractères
47
Formatage des chaînes de caractères:
2- Vous pouvez préparer une chaîne contenant l'essentiel du texte invariable, avec des balises
particulières aux endroits (les champs) où vous souhaiter qu'apparaissent des contenus variables.
On applique par la suite la méthode format().
• NB: si les balises {} sont vides, python appliquera la fonction str().
• Les balises peuvent contenir des numéros d'ordres:
4- Les chaînes de caractères
48
Formatage des chaînes de caractères:
3- Formatage à l'ancienne avant la version 3.0.
Elle consiste à formater la chaîne en assemblant deux éléments à l'aide de l'opérateur %.
à gauche de % on trouve la chaîne et à droite entre parenthèse le ou les objets à insérer dans la
chaîne.
5- les listes
49
Création d'une liste:
• liste = []
• liste = list()
#liste vide
#de même liste vide
• jours = ["Lundi", "Mardi"]
• personne = ['Foulen', 'Tunis', 3100, 28.1]
• liste = [1, 2, 3] #liste d'entiers
• liste= [0] * 10 #liste avec 10 éléments initialisés à 0
Affichage de la liste:
• print(liste)
• print(liste[0])
• print(liste[1])
• print(liste[-1])
#afficher toute la liste.
#afficher le premier élément.
#afficher le deuxième élément.
#afficher le dernier élément.
5- les listes
50
Ajouter des éléments à la liste:
• append(valeur)
• insert(pos, val)
• extend()
#ajoute la valeur à la fin de la liste.
#insérer val à la position pos.
#ajouter plusieurs valeurs à la fois à la fin.
Liste imbriquée (matrice) ou tableau 2D:
• liste = [[1,2,5,7],[3,7,9,8],[10,0,4,19]]
• liste[1][2]  9
• liste[2][1]  0
5- les listes
51
Supprimer des éléments de la liste:
• liste.remove(val): supprime la val de la liste.
• del liste[2]: supprime l'élément n°3
• del liste[1:3] : supprime les éléments n°2 et n°3 (indice 1 et 2).
• liste.pop(): supprime et renvoie un élément de la liste, par défaut le dernier
• liste.pop(i): supprime et renvoie l'élément n°(i+1).
5- les listes
52
Technique de slicing avancé:
Insertion:
mots=['jambon','fromage','confiture','chocolat']
mots[2:2]=["miel"] #insérer l'élément à la position2.
mots[5:5]=['saucisson','Ketchup'] #ajout les deux éléments à pos5
 ['jambon','fromage',' miel ','confiture','chocolat', 'saucisson' , 'Ketchup']
Suppression / remplacement:
mots[2:5]= [] # [] désigne une liste vide
 ['jambon','fromage','saucisson' , 'Ketchup']
mots[1:3] = ['salade'] # ['jambon','salade', 'Ketchup']
mots[1:] = ['mayaunaise','poulet','tomate']
 ['jambon ','mayaunaise','poulet','tomate']
5- les listes
53
Technique de slicing avancé:
Affichage:
#affiche les trois premiers éléments.
#affiche tous sauf les trois derniers éléments.
#affiche à partir du 3ème position jusqu'à la fin.
#affiche tous avec un pas de 2.
#affiche les éléments dans l'ordre inverse.
print (list[:3])
print (list[: -3])
print (list[2 :])
print (list[ :: 2])
print (list[ :: -1])
Range:
list(range(10))
list(range(5,13))
# [0,1,2,3,4,5,6,7,8,9]
# [5,6,7,8,9,10,11,12]
list(range(10, -10, -3)) #[10, 7, 4, 1, -2, -5, -8]
• for ind in range(len(mots)) :
print ( ind , mots[ ind ] )
5- les listes
54
Opération sur une liste:
• fruits = ['orange' , 'citron']
legumes = [ 'poireau', 'oignon', 'tomate']
• print (fruits + legumes)
['orange','citron','poireau','oignon','tomate']
• print (fruits * 3)
 ['orange' , 'citron','orange' , 'citron','orange' , 'citron']
Test d'apparence:
v = 'tomate'
if v in legumes :
print ('OK')
5- les listes
55
• Méthodes:
• sum(list): la somme de tous les éléments
• list.count(val): calcule le nombre d'occurrence de val.
• len(list): la taille de la liste.
• list.index(val): retourne l'index de la 1ère occurrence de val.
• list.index(2) #recherche l'indice de la valeur 2.
list.index(2, 2) #recherche 2 à partir de la position 2.
list.index(2, 2, 7) #recherche 2 dans la plage 2____6
• list.max() et list.min() #renvoie le maximum et le minimum.
• list.reverse() #inverser l'ordre des éléments dans la liste
• list.sort() #Trier la liste par ordre croissant par défaut.
• list.sort(reverse=True) # elle trie par ordre décroissant
• sorted(list) # renvoie une liste et ne modifie pas la liste.
• list.clear() # efface tous les éléments de la liste. devient liste vide.
6-Les fichiers
56
Pourquoi les fichiers:
• Pour stocker les données de manière permanente (ne pas les perdre), il faut les stocker dans le
fichier et en lire les données.
• En Python, la gestion de fichiers comprend les trois étapes suivantes:
1. Ouvrir un fichier
2. Traiter le fichier, c'est-à-dire effectuer des opérations de lecture ou d'écriture.
3. Fermer le fichier
Ouvrir un fichier?
• ob_fichier = open( nom_fichier, mode, encoding='xxx')
6-Les fichiers
57
6-Les fichiers
58
Fermeture d'un fichier?
• ob_fichier.close()
• Cette méthode n'est pas totalement sûre. Si une exception se produit lorsque nous effectuons une
opération avec le fichier, le programme se ferme sans fermer le fichier.
Solution:
Ou mieux avec l'instruction with:
• Cela garantit que le fichier est fermé lors de la sortie du bloc à l'intérieur de with.
6-Les fichiers
59
Ecriture dans un fichier?
• write() et print():
• Ou bien:
• N.B: write() doit écrire une chaine dans un fichier texte, donc
• a = 52
• f.write(str(a))
6-Les fichiers
60
Lecture d'un fichier?
• Il faut travailler avec des fichiers existants. Pour tester si un fichier existe ou non, on peut utiliser
la méthode isfile() du module os
• Si le fichier existe, elle renvoie True, sinon False
• seek() pour changer la position du curseur:
• f.seek(8)
• f.seek(0) # début du fichier
• f.tell() # renvoie la position actuelle
6-Les fichiers
61
L'instruction break pour sortir d'une boucle:
• Copie un fichier:
6-Les fichiers
62
• Les lignes sont séparées par 'n'. On peut lire un fichier texte ligne par ligne avec la boucle for
• Ou alternativement avec la méthode readline():
• Exercice: Créer une fonction permet de recopier un fichier texte, en omettant toutes les lignes
qui commencent par '#'
6-Les fichiers
63
Solution:
6-Les fichiers
64
readlines():
• Renvoie une liste des lignes
• L est une liste contient dans chaque élément une ligne du fichier test.txt
writelines( L ):
• Ecrire une liste de lignes (L) dans le fichier.
6-Les fichiers
65
Exercice 1:
• Considérons que vous avez à votre disposition un fichier texte contenant des phrases de
différentes longueurs. Ecrivez un script qui recherche et affiche la phrase la plus longue.
Exercice 2:
• Ecrivez un script qui compare les contenus de deux fichiers et signale la première
différence rencontrée (l'indice du premier caractère différent).
Exercice 3:
• A partir de deux fichiers préexistants A et B, construisez un fichier C qui contienne
alternativement une ligne de A, une ligne de B, une ligne de A… et ainsi de suite jusqu'à
atteindre la fin de l'un des deux fichiers originaux. Complétez ensuite C avec les
éléments restant sur l'autre.
Références bibliographiques et webographiques
66
https://python.sdv.univ-paris-diderot.fr/01_introduction
https://www.python.org/

Algorithmique et progrfgfgfgfgfgfgffggfammation PYTHON.pptx

  • 1.
    Intitulé du cours:Algorithme et programmation`PYTHON` Année de formation 2024/2025
  • 2.
    Plan du cours Objectifsdu module Introduction 1. Introduction au langage python 2. Structures de contrôle 3. Les fonctions 4. Types de données 5. Gestion de fichiers 2
  • 3.
    Objectifs du module 3 permet d'écrire des scripts(des instructions pour des programmes informatiques)  développe la logique et la résolution de problèmes  des compétences précieuses dans de nombreux domaines,  pas seulement en programmation.
  • 4.
    Introduction 4 Python est unlangage de programmation (au même titre que le C, C++, fortran, java . . .), développé en 1989. Ses principales caractéristiques sont les suivantes :  «open-source» : son utilisation est gratuite et les fichiers sources sont disponibles et modifiables .  simple et très lisible.  doté d’une bibliothèque de base très fournie .  importante quantité de bibliothèques disponibles : pour le calcul scientifique, les statistiques, les bases de données, la visualisation .  grande portabilité : indépendant vis à vis du système d’exploitation (linux, windows, MacOS).  orienté objet.  typage dynamique : le typage (association à une variable de son type et allocation zone mémoire en conséquence).
  • 5.
    Chapitre I:Introduction aulangage python. 5 • Installer IDLE python • Installer Thonny • Mode interactif (calculer avec python) • Mode script • PyCharm
  • 6.
    Chapitre I:Introduction aulangage python. 6 Données et variables Variable? : c’est une référence désignant une adresse mémoire; c’est-à-dire un emplacement précis dans la mémoire vive (RAM). A cet emplacement est stockée une valeur bien déterminée. Exemple: A = 5
  • 7.
    Chapitre I:Introduction aulangage python. 7 Noms de variables : L'ensemble des symboles utilisables est donc: • {0,1,2,...,9,A,B,...,Z,a,b,...,z} • Les lettres accentuées • Les caractères spéciaux tels que $, #, @, etc. sont interdits, à l'exception du caractère _ (underscore). • Le premier caractère doit être une lettre (ou le symbole '_’) • Python distingue les majuscules et les minuscules, ainsi: NUM, Num et num sont des variables différentes. Mots réservés: (à ne pas utiliser pour nommer des variables) Tous les mots-clés sauf True, False et None sont en minuscules
  • 8.
    Chapitre I:Introduction aulangage python. 8 Types de données: • Un type de données définit un ensemble de valeurs ainsi que des opérations pouvant être effectuées sur ces valeurs. • Les types de bases sont: Entiers  int réel  float Chaîne de caractères  str Déclaration  Affectation: • nom_variable = expression Exemple: a = 5 nom = " Foulen " Nous ne déclarons pas le type de la variable à l’avance: int a = 5
  • 9.
    Chapitre I:Introduction aulangage python. 9 Typage dynamique: • Python détecte automatiquement le type de la variable Affectations multiples: • var1, var2, var3, ... varN = exp1, exp2, exp3, ... expN Exemple: a , nom , b = 2 , "Foulen" , 3.5
  • 10.
    Chapitre I:Introduction aulangage python. 10 Les instructions: • Si une instruction s'étende sur plusieurs lignes on ajoute le caractère de continuation de ligne () à la fin: • Ceci est une continuation de ligne explicite. En Python, la continuation de la ligne est impliquée dans les parenthèses (), les crochets [] et les accolades {}. • Nous pourrions également mettre plusieurs instructions sur une seule ligne en utilisant des points-virgules, comme suit: • Pas de ; à la fin d'une instruction
  • 11.
    Chapitre I:Introduction aulangage python. 11 Les commentaires en Python: • En Python, nous utilisons le symbole dièse(#) pour commencer à écrire un commentaire. • Commentaires multilignes: • Ou bien, une autre façon de faire consiste à utiliser des guillemets triples, soit ''' ou """. Ces triples guillemets sont généralement utilisés pour les chaînes multilignes.
  • 12.
    Chapitre I:Introduction aulangage python. 12 Fonction print() : • La façon la plus simple de produire la sortie Exemple: a = 5 print ( a ) print ("Votre moyenne est : " , moy ) Fonction input() : Nous pourrions vouloir prendre l’information de l’utilisateur: • Ici, la valeur entrée 5 est une chaîne, pas un nombre. Pour convertir cela en un nombre, nous pouvons utiliser les fonctions int() ou float().
  • 13.
    Chapitre 2. Structuresde contrôle. 13 Les opérateurs en python • Opérateurs arithmétiques (+ ,- ,* , / , % , // , ** ) • Opérateurs relationnels (== , != , > , < , >= et <=) • Opérateurs logiques (and, or et not) • Opérateurs d'affectation (=, +=, -=, *=, etc) • Opérateurs spéciaux (is, is not, in, not in) Instruction composée : en-tête, double point, bloc d'instructions indenté • Les blocs d'instructions sont délimités par l'indentation (Toutes les lignes d'un même bloc doivent être indentées exactement de la même manière c-à-d décalés vers la droite d'un même nombre d'espaces).
  • 14.
    Chapitre 2. Structuresde contrôle. 14 Exercice 1: Ecrire un programme en langage Python qui demande à l’utilisateur de saisir deux nombres a et b et de lui Affiche leur somme a+b Exercice 2: Ecrire un programme en langage Python qui affiche les 100 premiers nombres entier Exercice 3: Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son nombre est pair ou impair Exercice 4: Nous allons écrire un programme python qui, à partir du numéro d’un mois, permet d’afficher la saison. Les mois sont numérotés de 1 à 12 en commençant par janvier. Série d’exercice.
  • 15.
    Chapitre 2. Structuresde contrôle. 15 Exercice 4: Ecrire un programme en langage Python qui demande à l’utilisateur de saisir un nombre entier n et de affiche si ce nombre est premier ou non Exercice 5: Ecrire un programme en langage Python qui permet de parcourir et afficher les caractères d’une variable du type chaine de caractères Exemple pour s= « Python » Le programme affiche les caractères : P Y T H O N
  • 16.
    Chapitre 2. Structuresde contrôle. 16 Les instructions if-else: • if simple: • if-else: • if-elif-else:
  • 17.
    Chapitre 2. Structuresde contrôle. 17 Les instructions if-else: • if-else imbriquée:
  • 18.
    Chapitre 2. Structuresde contrôle. 18 Switch…Pas de switch jusqu’à version 3.9 A partir de la version 3.10 (4/10/2021): match case Syntaxe:
  • 19.
    Chapitre 2. Structuresde contrôle. 19 Match case: Exemple
  • 20.
    Chapitre 2. Structuresde contrôle. 20 Les instructions répétitives – Les boucles: Boucle while (Tant que): • En python, la boucle while est utilisée pour exécuter un bloc d'instructions à plusieurs reprises jusqu'à ce qu'une condition donnée soit remplie. Et lorsque la condition devient fausse, la ligne immédiatement après la boucle dans le programme est exécutée. • Syntaxe: • Exemple:
  • 21.
    Chapitre 2. Structuresde contrôle. 21 Les instructions répétitives – Les boucles: Boucle for..in: • la boucle for est utilisée pour les parcours séquentiels. Par exemple: parcourir une liste, une chaîne, un tableau, etc. • En Python, il n’existe pas de style for(i = 0; i < n; i++). • Syntaxe: • sequence ça peux être Range, List, Tuple, Dictionnaire, une chaîne de caractères ou un fichier. • Le cas de range():
  • 22.
    2. Structures decontrôle 22 Les instructions répétitives – Les boucles: • Boucles imbriquées: • Python permet d’utiliser une boucle dans une autre boucle (boucles imbriquées). • Syntaxe: Exemple
  • 23.
    2. Structures decontrôle 23 Instructions de contrôle de boucle: • Les instructions de contrôle de boucle modifient l'exécution normale de la séquence. • Instruction continue : elle renvoie le contrôle au début de la boucle. • Instruction break : Il termine la boucle courante et reprend l'exécution à la prochaine instruction après la boucle
  • 24.
    2. Structures decontrôle 24 Exercices: 1- Ecrire un programme python permettant d’afficher la factorielle d’un entier. On rappelle que n!=1*2*3*…. *n-1*n avec 0!=1. 2- Ecrire un programme python Ecrire un programme python permettant de trouver et d’afficher les nombres cubiques de 3 chiffres. Un nombre est dit cubique s’il est égal à la somme des cubes de ses chiffres (153 est cubique car 153 = 1³ + 5³ + 3³). 3- Calculez par multiplications successives XN de deux entiers naturels X et N entrés au clavier. (Sans utiliser la fonction pow(X, N)). Discuter tous les cas.
  • 25.
    3. Les fonctions 25 Définition: •L'un des concepts les plus importants en programmation est celui de fonction • Les fonctions permettent en effet de décomposer un programme complexe en une série de sous- programme plus simple. • Lorsqu’une tâche doit être réalisée plusieurs fois par un programme avec seulement des paramètres différents, on peut l’isoler au sein d’une fonction. • D'autre part, les fonctions sont réutilisables. Syntaxe: Sans indiquer les types des paramètres
  • 26.
    3. Les fonctions 26 Notezbien les parenthèses, les deux-points, et l’indentation du bloc d’instructions qui suit la ligne d’en-tête (c’est ce bloc d’instructions qui constitue le corps de la fonction proprement dite).Après la définition de la fonction, on trouve le programme principal qui débute par l’instruction print("bonjour"). Il y a ensuite au sein du programme principal, l’appel de la fonction grâce à table7(). Nous pouvons maintenant réutiliser cette fonction à plusieurs reprises, autant de fois que nous le souhaitons. Exemple :
  • 27.
    3. Les fonctions 27 Nouspouvons également l’incorporer dans la définition d’une autre fonction. Exemple:
  • 28.
    3. Les fonctions 28 Fonctionavec paramètre: Remarque: la variable a sera affecté au paramètre base.
  • 29.
    3. Les fonctions 29 Améliorerla fonction table afin de définir le début et la fin de la table de multiplication: Fonctioan avec plusieurs paramètres: Remarque: il faut respecter l'ordre des paramètres.
  • 30.
    3. Les fonctions 30 •"q" est une variable globale, accessible même à l'intérieur des fonctions, mais non modifiable. • On a deux variables "p", l'une est globale et l'autre locale à la fonction. • On ne peut pas appeler une variable locale d'une fonction dans un programme ou dans une autre fonction. Variables locales, variables globales:
  • 31.
    3. Les fonctions 31 Pourrendre une variable modifiable à l'intérieur des fonctions, on doit ajouter l'instruction global Variables locales, variables globales:
  • 32.
    3. Les fonctions 32 •La seule différence entre fonction et procédure est que la fonction retourne une ou des données, la procédure ne retourne rien. • Il faut commencer par la définition des fonctions puis le programme principale. Fonctions et procédures: Passage des paramètres:
  • 33.
    3. Les fonctions 33 •Les paramètres sans valeur par défaut doivent précéder les autres dans la liste. La définition suivante est incorrecte: Valeurs par défaut pour les paramètres:
  • 34.
    3. Les fonctions 34 Onpeut appeler la fonction avec les paramètres pas dans leur ordre, à condition de désigner nommément les paramètres correspondants. Arguments avec étiquettes:
  • 35.
    3. Les fonctions 35 Exercices: 1-Définir une fonction maximum(n1, n2, n3)qui renvoie le plus grand de 3 nombres n1, n2 et n3 fournis en arguments. 2- Définir une fonction nomMois(n) qui renvoie le nom de énième mois de l'année. 3- Modifier la fonction maximum(n1, n2, n3) ci-dessus de manière à ce qu'elle puisse être appelée avec un, deux ou trois arguments, ou même aucun argument. Utiliser pour ceux-ci des valeurs par défaut : n1=5, n2=10 et n3=15.
  • 36.
    4- Les chaînesde caractères 36 • Indiçage, extraction, longueur: • -1 l’indice du dernier caractère, -2 l’avant dernier, etc… • Pour connaître le nombre de caractère (longueur du string):
  • 37.
    4- Les chaînesde caractères 37 Extraire une partie d’une chaîne:  Slicing: découpage en tranches  Consiste à indiquer entre crochets les indices correspondant au début et à la fin de la « tranche », Extraction de fragments de chaînes: • Dans la tranche [n : m], le nième caractère est inclus mais pas le mième. • print(nom[3:7]) ? noun  • print (nom[:3]) = print (nom[ 0 :3]) • print (nom[ 3:]) = print (nom[ 3 : len(nom)])
  • 38.
    4- Les chaînesde caractères 38 Concaténation, répétition: Les strings peuvent être concaténées avec + et répétés avec * Parcours d’une chaîne:
  • 39.
    4- Les chaînesde caractères 39 1- Ecrire une fonction trouve(chaine, car) qui devra retrouver l'index correspondant à un caractère donné. 2- Ecrire une fonction compteCar(chaine, car) qui compte le nombre d'occurrence d'un caractère donné dans une chaîne. Ainsi: print(comptCar("ananas au jus", "a")) devra afficher: 4. 3- Dans un conte américain, huit petits canetons s'appellent respectivement: Jack, Kack, Lack, Mack, Nack, Oack, Pack et Qack. Ecrivez un petit programme qui génère tous ces nom à partir des deux chaînes suivantes: prefixes = 'JKLMNOPQ' et suffixe = 'ack'. 4- Ecrire une fonction qui recherche le nombre de mots contenus dans une phrase donnée. Exercices:
  • 40.
    4- Les chaînesde caractères 40 • On peut utiliser in indépendamment de for, pour vérifier si un caractère donné fait partie ou non d’une chaîne Appartenance d’un caractère à une chaîne: Les chaînes sont non modifiables: la 2éme ligne  Exercice: • Ecrivez une fonction estUneMaj() qui renvoie vrai si l'argument transmis est une majuscule.
  • 41.
    4- Les chaînesde caractères 41 Les chaînes sont comparables: • On peut utiliser les opérateurs de comparaison (<, >, …). NB: Cela ne fonctionne que pour les mots qui sont entièrement en minuscules ou entièrement en majuscules, et qui ne comporte aucun caractère accentué. Accéder à d’autre caractères que ceux du clavier: • Tous les caractères possèdent leur identifient numérique universel Unicode. Pour y accéder: • Ord("A")  65 • Chr(66)  'B'
  • 42.
    4- Les chaînesde caractères 42 Les chaînes sont des objets: Sous python, les chaînes sont des objets, qui ont des méthodes. Les plus utiles sont: split(): convertit une chaîne en une liste de sous-chaîne. On peut choisir le caractère séparateur. split() #par défaut le séparateur est l'espace split(",") #le séparateur est le,
  • 43.
    4- Les chaînesde caractères 43 Les chaînes sont des objets: • join(liste) : rassemble une liste de chaînes en une seule. "séparateur".join(liste) • find(sch): cherche la position d'une sous-chaîne sch dans la chaîne • count(sch): compte le nombre d'apparition de sch dans la chaîne
  • 44.
    4- Les chaînesde caractères 44 Les chaînes sont des objets: • lower(): convertir une chaîne en minuscule. • upper(): convertir une chaîne en majuscule. • title(): convertir en majuscule l'initiale de chaque mot. • capitalize(): convertir seulement la première lettre de la chaîne. • swapcase(): convertir toutes les majuscules en minuscules et vice- versa. • strip(): enlêve les espaces éventuels au début et à la fin de la chaînes. • replace(c1,c2): remplace tous les caractères c1 par c2. • index(car): retrouve l'indice de la première occurrence du car. index("e",5): cherche à partir de l'indice 5. • NB: Il existe d'autres fonctions.
  • 45.
    4- Les chaînesde caractères 45 Fonctions intégrées: len(ch): renvoie la longueur de ch. float(ch): convertir la chaîne ch en un nombre réel. int(ch) str(obj): convertir l'objet obj en une chaîne de caractère. Exercice: Ecrire une fonction qui compte le nombre de mots contenus dans une phrase.
  • 46.
    4- Les chaînesde caractères 46 Formatage des chaînes de caractères: • Utilisé pour construire une chaîne complexe à partir d'un certain nombre de morceaux. • 1- • ou bien
  • 47.
    4- Les chaînesde caractères 47 Formatage des chaînes de caractères: 2- Vous pouvez préparer une chaîne contenant l'essentiel du texte invariable, avec des balises particulières aux endroits (les champs) où vous souhaiter qu'apparaissent des contenus variables. On applique par la suite la méthode format(). • NB: si les balises {} sont vides, python appliquera la fonction str(). • Les balises peuvent contenir des numéros d'ordres:
  • 48.
    4- Les chaînesde caractères 48 Formatage des chaînes de caractères: 3- Formatage à l'ancienne avant la version 3.0. Elle consiste à formater la chaîne en assemblant deux éléments à l'aide de l'opérateur %. à gauche de % on trouve la chaîne et à droite entre parenthèse le ou les objets à insérer dans la chaîne.
  • 49.
    5- les listes 49 Créationd'une liste: • liste = [] • liste = list() #liste vide #de même liste vide • jours = ["Lundi", "Mardi"] • personne = ['Foulen', 'Tunis', 3100, 28.1] • liste = [1, 2, 3] #liste d'entiers • liste= [0] * 10 #liste avec 10 éléments initialisés à 0 Affichage de la liste: • print(liste) • print(liste[0]) • print(liste[1]) • print(liste[-1]) #afficher toute la liste. #afficher le premier élément. #afficher le deuxième élément. #afficher le dernier élément.
  • 50.
    5- les listes 50 Ajouterdes éléments à la liste: • append(valeur) • insert(pos, val) • extend() #ajoute la valeur à la fin de la liste. #insérer val à la position pos. #ajouter plusieurs valeurs à la fois à la fin. Liste imbriquée (matrice) ou tableau 2D: • liste = [[1,2,5,7],[3,7,9,8],[10,0,4,19]] • liste[1][2]  9 • liste[2][1]  0
  • 51.
    5- les listes 51 Supprimerdes éléments de la liste: • liste.remove(val): supprime la val de la liste. • del liste[2]: supprime l'élément n°3 • del liste[1:3] : supprime les éléments n°2 et n°3 (indice 1 et 2). • liste.pop(): supprime et renvoie un élément de la liste, par défaut le dernier • liste.pop(i): supprime et renvoie l'élément n°(i+1).
  • 52.
    5- les listes 52 Techniquede slicing avancé: Insertion: mots=['jambon','fromage','confiture','chocolat'] mots[2:2]=["miel"] #insérer l'élément à la position2. mots[5:5]=['saucisson','Ketchup'] #ajout les deux éléments à pos5  ['jambon','fromage',' miel ','confiture','chocolat', 'saucisson' , 'Ketchup'] Suppression / remplacement: mots[2:5]= [] # [] désigne une liste vide  ['jambon','fromage','saucisson' , 'Ketchup'] mots[1:3] = ['salade'] # ['jambon','salade', 'Ketchup'] mots[1:] = ['mayaunaise','poulet','tomate']  ['jambon ','mayaunaise','poulet','tomate']
  • 53.
    5- les listes 53 Techniquede slicing avancé: Affichage: #affiche les trois premiers éléments. #affiche tous sauf les trois derniers éléments. #affiche à partir du 3ème position jusqu'à la fin. #affiche tous avec un pas de 2. #affiche les éléments dans l'ordre inverse. print (list[:3]) print (list[: -3]) print (list[2 :]) print (list[ :: 2]) print (list[ :: -1]) Range: list(range(10)) list(range(5,13)) # [0,1,2,3,4,5,6,7,8,9] # [5,6,7,8,9,10,11,12] list(range(10, -10, -3)) #[10, 7, 4, 1, -2, -5, -8] • for ind in range(len(mots)) : print ( ind , mots[ ind ] )
  • 54.
    5- les listes 54 Opérationsur une liste: • fruits = ['orange' , 'citron'] legumes = [ 'poireau', 'oignon', 'tomate'] • print (fruits + legumes) ['orange','citron','poireau','oignon','tomate'] • print (fruits * 3)  ['orange' , 'citron','orange' , 'citron','orange' , 'citron'] Test d'apparence: v = 'tomate' if v in legumes : print ('OK')
  • 55.
    5- les listes 55 •Méthodes: • sum(list): la somme de tous les éléments • list.count(val): calcule le nombre d'occurrence de val. • len(list): la taille de la liste. • list.index(val): retourne l'index de la 1ère occurrence de val. • list.index(2) #recherche l'indice de la valeur 2. list.index(2, 2) #recherche 2 à partir de la position 2. list.index(2, 2, 7) #recherche 2 dans la plage 2____6 • list.max() et list.min() #renvoie le maximum et le minimum. • list.reverse() #inverser l'ordre des éléments dans la liste • list.sort() #Trier la liste par ordre croissant par défaut. • list.sort(reverse=True) # elle trie par ordre décroissant • sorted(list) # renvoie une liste et ne modifie pas la liste. • list.clear() # efface tous les éléments de la liste. devient liste vide.
  • 56.
    6-Les fichiers 56 Pourquoi lesfichiers: • Pour stocker les données de manière permanente (ne pas les perdre), il faut les stocker dans le fichier et en lire les données. • En Python, la gestion de fichiers comprend les trois étapes suivantes: 1. Ouvrir un fichier 2. Traiter le fichier, c'est-à-dire effectuer des opérations de lecture ou d'écriture. 3. Fermer le fichier Ouvrir un fichier? • ob_fichier = open( nom_fichier, mode, encoding='xxx')
  • 57.
  • 58.
    6-Les fichiers 58 Fermeture d'unfichier? • ob_fichier.close() • Cette méthode n'est pas totalement sûre. Si une exception se produit lorsque nous effectuons une opération avec le fichier, le programme se ferme sans fermer le fichier. Solution: Ou mieux avec l'instruction with: • Cela garantit que le fichier est fermé lors de la sortie du bloc à l'intérieur de with.
  • 59.
    6-Les fichiers 59 Ecriture dansun fichier? • write() et print(): • Ou bien: • N.B: write() doit écrire une chaine dans un fichier texte, donc • a = 52 • f.write(str(a))
  • 60.
    6-Les fichiers 60 Lecture d'unfichier? • Il faut travailler avec des fichiers existants. Pour tester si un fichier existe ou non, on peut utiliser la méthode isfile() du module os • Si le fichier existe, elle renvoie True, sinon False • seek() pour changer la position du curseur: • f.seek(8) • f.seek(0) # début du fichier • f.tell() # renvoie la position actuelle
  • 61.
    6-Les fichiers 61 L'instruction breakpour sortir d'une boucle: • Copie un fichier:
  • 62.
    6-Les fichiers 62 • Leslignes sont séparées par 'n'. On peut lire un fichier texte ligne par ligne avec la boucle for • Ou alternativement avec la méthode readline(): • Exercice: Créer une fonction permet de recopier un fichier texte, en omettant toutes les lignes qui commencent par '#'
  • 63.
  • 64.
    6-Les fichiers 64 readlines(): • Renvoieune liste des lignes • L est une liste contient dans chaque élément une ligne du fichier test.txt writelines( L ): • Ecrire une liste de lignes (L) dans le fichier.
  • 65.
    6-Les fichiers 65 Exercice 1: •Considérons que vous avez à votre disposition un fichier texte contenant des phrases de différentes longueurs. Ecrivez un script qui recherche et affiche la phrase la plus longue. Exercice 2: • Ecrivez un script qui compare les contenus de deux fichiers et signale la première différence rencontrée (l'indice du premier caractère différent). Exercice 3: • A partir de deux fichiers préexistants A et B, construisez un fichier C qui contienne alternativement une ligne de A, une ligne de B, une ligne de A… et ainsi de suite jusqu'à atteindre la fin de l'un des deux fichiers originaux. Complétez ensuite C avec les éléments restant sur l'autre.
  • 66.
    Références bibliographiques etwebographiques 66 https://python.sdv.univ-paris-diderot.fr/01_introduction https://www.python.org/