0% ont trouvé ce document utile (0 vote)
2 vues100 pages

2 Python

Transféré par

mejrimarro
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)
2 vues100 pages

2 Python

Transféré par

mejrimarro
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

Python pour ML

Ibrahim Benabdallah

Année universitaire
2023-2024
Plan du cours

1 Concepts de base des algorithmes

2 Python

3 Les structures conditionnelles

4 Types composés

5 Les structures itératives

6 Les procédures et les fonctions


Chapitre 1

Concepts de base des algorithmes


INFORMATIQUE

INFORMATIQUE

INFORMATION AUTOMATIQUE
L'informatique est une discipline qui combine l'information et
l'automatisation pour concevoir, tester et entretenir des systèmes informatiques
capables de traiter et de manipuler des données de manière automatisée. Ses
domaines d'application sont vastes, incluant le développement de logiciels, la
gestion de bases de données, l'intelligence artificielle, la sécurité informatique,
les réseaux informatiques, la conception de circuits électroniques, et bien
d'autres encore. En somme, l'informatique est au cœur de nombreuses
technologies et innovations qui façonnent notre monde moderne.
4
Ordinateur

Les machines informatiques peuvent récupérer des données via


des périphériques d'entrée, les traiter grâce à des programmes et
algorithmes, puis afficher les résultats via des périphériques de sortie.
Cette automatisation du traitement de l'information est essentielle
dans de nombreux domaines, facilitant la prise de décision et
l'accomplissement de tâches complexes.

TRAITEMENT
ENTREES SORTIES
Par ordinateur

5
Algorithme

Définition 1
Un algorithme est une procédure préétablie qui permet de calculer une
ou plusieurs valeurs en entrée, et qui renvoie une ou plusieurs valeurs
en sortie.
Définition 2 Un algorithme est une suite ordonnée d'instructions qui,
lorsqu'elle est correctement exécutée, conduit à un résultat spécifié. Il
s'agit d'une série d'étapes de calcul qui transforment l'entrée en une
sortie.

• Un algorithme est donc une séquence d’étapes de calcul qui


transforme l'entrée en sortie.

6
Algorithme

Caractéristiques d’un algorithme: Un bon algorithme en des termes plus clairs et


faciles à comprendre :
 Non ambigu : l'algorithme doit être facile à comprendre, sans ambiguïté ni
confusion.
 Déterministe : lorsque l'algorithme est appliqué à un ensemble de données, il
doit produire le même résultat, indépendamment de la machine utilisée pour
le faire fonctionner.
 Finit : l'algorithme doit se terminer de manière définitive dans un temps
prédéfini, quelle que soit la machine utilisée pour son exécution.
 Efficace : l'algorithme doit réaliser le travail demandé en utilisant le moins de
ressources possible, telles que la mémoire ou la puissance de calcul.
7
Structure d’un Algorithme

Entête Algorithme Nom de l’algorithme

Déclarations Const : Liste des constantes


Var : Liste des variables
Struct : Liste des structures

Début
Corps Action 1
Action 2 {Commentaire}
.
.
Action n
fin

8
La notion de variable

 Dans un programme informatique, on a, en permanence, besoin de stocker


provisoirement des valeurs y cmopris:
 données
 résultats obtenus par le programme

 Pour stocker une valeur au cours d'un programme, on utilise une variable.

 Dans la mémoire de l’ordinateur, physiquement, une variable correspond à un


emplacement de mémoire, repéré par une adresse.

9
La notion de variable

 Exemple : verre d’eau

Contenant Le contenu change mais le


Contenu contenant reste le même

 Correspondance :

 Verre Variable
o Verre: objet contenant un liquide.
o Variable : zone mémoire contenant une valeur.
 Eau Valeur

10
Déclaration d’une variable

 Une variable est une entité qui contient une information, elle est caractérisée par :

 un nom, on parle d’identifiant (unique).


 une valeur : information associée à une variable à un instant donné.
 un type, qui caractérise l’ensemble des valeurs que peut prendre la variable.

 Déclaration : Identifiant de la variable : type

 Exemple : Nom : chaîne de caractères


Age : entier
Distance : réel

11
Types de données

 Le type d’une variable caractérise

 L’espace des valeurs que peut prendre une variable donnée.


 L’ensemble des actions que l’on peut effectuer sur une variable.
 Apparaît dans l’entête de l’algorithme avec la déclaration des variables.

12
Types de données

 Le type d’une variable est inchangeable. Il est déclaré une seule fois et reste le
même.

 Le contenu de la variable doit être du même type. On affecte pas un réel à une
variable de type entier

Deux grandes catégories de types:

 Simples: booléen, entier, réel, …


 Composés: des structures composés (que nous verrons dans la suite du cours)

13
Les types simples

Les types de variables les plus courants en algorithmique

 Type numérique

 Entier : ensemble des entiers relatifs Z


 Réel : ensemble des nombres réels R

 Type alphanumérique

 Caractère
 Chaine de caractères : toujours notée entre guillemets

 Type booléen

 Booléen : stocke uniquement les valeurs logiques VRAI et FAUX


14
Expressions et opérateurs

Une expression

 est une combinaison d’opérateur(s) et d’opérande(s)


 est évaluée durant l’exécution de l’algorithme
 possède une valeur (son interprétation) et un type

 Un opérateur est un symbole d’opération qui permet d’agir sur des


variables pour produire un résultat.
 Une opérande est une entité ( variable, constante ou expression) utilisée par un
opérateur.

Exemple:

 a+b est appelée une expression


 a et b sont les opérandes
 + est l’opérateur
15
Expressions et opérateurs

• Opérateurs Booléens : Non, Et, Ou, Ou Exclusif

16
Expressions et opérateurs^vcxw<

• Opérateurs sur les numériques:


• On retrouve tout naturellement : +, -, *, /, ^
• Pour les entiers : div et mod, permettent respectivement de calculer une division
entière et le reste de cette division .
• L’opérateur d’égalité permet de savoir si les deux opérandes sont égales. Le
résultat d'une expression contenant cet opérateur est un booléen.
• On a aussi l’opérateur d’inégalité : ≠
• Et pour les types possédant un ordre les opérateurs de comparaison <, ≤, >, ≥

17
Expressions et opérateurs

• Opérateurs alphanumériques:

• &: La concaténation
 Cet opérateur permet de concaténer deux chaînes de caractères

18
Affectation, lecture et affichage

• Opérateurs alphanumériques:

• Affecter une variable c’est lui attribuer une valeur


• L’instruction d’affectation se note avec le signe 
• On peut affecter à une variable la valeur d’une autre variable.
• On peut affecter à une variable le résultat d’une opération en fonction d’autres
variables.
Important : Une instruction d'affectation ne modifie que ce qui
est situé à gauche de l'affectation 
Exemple : a  10,5
ba
19
a  b + 2,5
Affectation, lecture et affichage

• Une instruction d’affection doit respecter trois conditions :

 à gauche de l'affectation, on doit trouver un nom de variable, et uniquement


cela. Dans le cas contraire, il s'agit certainement d'une erreur !

 à droite de l'affectation, on doit trouver une expression ou une opérande ;

 l'expression (située a droite de l'affectation) doit être du même type que la


variable (située à gauche de l'affectation).

20
Affectation, lecture et affichage

• L’instruction de lecture

• Une instruction de lecture permet à l’utilisateur de rentrer des valeurs au clavier


pour qu’elles soient utilisées par le programme

Lire (A)

Dès que le programme rencontre une instruction Lire, l'exécution s’interrompt et


attend la frappe d'une valeur au clavier.

21
Affectation, lecture et affichage

• L’instruction d’écriture

• Une instruction d’écriture permet au programme de communiquer des valeurs à


l’utilisateur en les affichant à l’écran.

Ecrire (‘’La valeur de B est :’’ , B)

22
Exemple

• Exemple: Calcul de la surface d’un rectangle

Algorithme CalculSurface
Var: Longueur, Largeur, Surface : réel
Début
Ecrire(‘’Donnez la longueur en m’’)
Lire(Longueur)
Ecrire(‘’Donnez la largeur en m’’)
Lire(Largeur)
Surface  Longueur * Largeur
Ecrire (‘’La surface du rectangle est :’’, Surface)
23
Fin
Chapitre 2

Introduction à l’environnement Python

24
Python(2024)

25
Python

• Python est un langage de programmation Créé par le


programmeur néerlandais Guido van Rossum, dont
la première version est sortie en 1991

• Il s’agit d’un langage de programmation interprété Guido Van


qui permet l’exécution d’un code source ligne par Rossum
ligne en affichant le résultat de chaque ligne des
commandes

• Il est aussi, un langage de programmation de haut


niveau

26
Python: Import des modules

Syntaxe:
import nom_module

 Toutes les fonctions de ce module devront être préfixées du nom du module


pour être utilisées : pour utiliser « sin » il faudra utiliser la fonction [Link]
>>> from math import pi, sin
>>> print("Valeur de Pi :", pi, "sinus(pi/4) :", sin(pi/4)).
Valeur de Pi : 3.14159265359 sinus(pi/4) : 0.707106781187

 Les noms des modules peuvent être longs: on peut leur donner un alias.
• import math as m, on utilisera [Link]

27
Python: Import des modules

Syntaxe:
from nom_module import *

 Les fonctions n’ont pas besoin d’être préfixées par le nom du


module : on utilisera sin directement.

 On peut importer que les fonctions dont on aura l’usage

from math import sqrt, pi

28
Python: Type de variable

Type Déclalaration Exemple Usage


Entier int x = 124 Nombre sans point décimal
Réel float x = 124.56 Nombre avec point décimal
Chaine de caractères str x = " hello world" Pour les texte
Booléen bool x = True Utilisé pour le structures
coditionnelles
Complexe complex x = 1j**2 Utilisé pour les nombres
complexes
Rien None x = None Variable vide

29
Python: Opération sur les variables

Les noms des variables sont composés de lettres et de chiffres.


 L’ensemble des symboles utilisables:
Lettres ‘a’, ’b’,………..., ‘z’, ’A’, ’B’,………., ’Z’.
Chiffres 0, 1, 2,…….’9’.
Le symbole ‘_’.
 Le nom d’une variable doit obligatoirement commencer par une lettre ou
le symbole ‘_’.

 Le langage Python distingue les majuscules et les minuscules.


NOM et nom sont deux variables différentes.

 Les noms de variables ne peuvent pas être des mots réservés


(print, range, for, from, in, …).
30
Python: Opération sur les variables

 nomenclature : Correct / Incorrect ??

somme Correct SOMME Correct

* SOMME Incorrect SOMME_1 Correct

2Somme Incorrect Som Correct

Somme-annuelle Incorrect Somme. Incorrect

Somme marchandise Incorrect Somme_marchandise Correct

31
Python: Opération sur les variables

 Affectation/Typage automatique
Il s’agit de déclarer la variable sans préciser explicitement son type
a = 1.9
a est une variable, elle est typée en flottant « float » parce qu’il y a un point
décimal.
a est l’identifiant de la variable. = est l’opérateur d’affectation.
affectations multiples:
• a = b = 5.5 #même valeur pour plusieurs variables
print(a)
5.5 # resultat de l’affichage
• print(b)
5.5
• c, e = 10, 5 #affectations parallèles
print(c, e)
10 5 32
Python: Opération sur les variables

33
Python: Opération sur les variables

Symbole Tache Exemple Résultat (print(a))


+ Addition a = 4+3 7
- Soustraction a = 4-3 1
/ Division a = 7/2 3.5
% Mod (reste de la a = 7%2 1
division)
* Multiplication a = 4*3 12
// Division entière a = 7//2 3
** Puissance a = 7**2 49

Ordre de priorité

34
Python: Opération sur les variables

Opérateur Sortie
x == y Vrai si x et y ont la même valeur
x != y Vrai si x et y n’ont pas la même valeur
x<y Vrai si x est inférieure à y
x>y Vrai si x est supérieure à y
x <= y Vrai si x est inférieure ou égale à y
x >= y Vrai si x est supérieure ou égame à y

(1 < 10) True (vrai)

(1 == 10) False (vrai)

35
Python: Opération sur les variables

Opérateurs logiques:

type booléen en Python.


True: vrai ou False: faux
 and : et logique

 or : ou logique

 not: négation
not(5 > 1)
False(fau
x)
(5 > 1) or not(4 < 8) True
(vrai)
36
Python: Opération sur les variables

• Le langage Python autorise des écritures simplifiées pour


l’incrémentation et la décrémentation de variables :

 i = i+1  i+=1
i = i-1  i-=1
 a = a+b  a+= b
a = a-b  a-= b
a = a * b  a*= b
a = a / b  a/= b

Remarque: La notation i++ (ou i--) n’est pas disponible en Python

37
Python: Opération sur les variables

Principe: Utilisation du mot-clé désignant le type


Syntaxe: nouveau_type (objet)
Exemples:
Conversion en numérique
>>> a = “15” #a est de type chaine de caractères
>>> b = float(a) #b est de type float
>>> print(b)
15.0 ou >>> print(float (“12” ))
15.0
N.B: Si la conversion n’est pas possible, Python renvoie une erreur
>>> print(int("15.36")) erreur

38
Python: Opération sur les variables

Conversion en logique
• a = bool(1)
print(a)
True

• a=bool("False")
print(a)
True

• a = bool(False)
print(a)
False
39
Python: Opération sur les variables

Conversion en chaine de caractères


a = str(15)
print(a)
15
a = 5524.53
b = str(a)
print(b)
5524.53 # chaine affichée sans les quotes
print(type(b))
<class ‘str’>

40
Python: Saisie

• Saisie
a = input (“Saisir une valeur”)
input() permet d’effectuer une saisie au clavier
Cette function renvoie toujours une chaîne, donc il faut faire une
conversion a = float (a)
Autre exemple:
a = int (input (“Saisir un entier positif”))

41
Python: Affichage

affichage explicite: print(a)


affichage multiple: print(a, b)
affichage avec transtypage:
a = 500
print("prix de l'article est:" +str(a))
prix de l'article est:500
Fonction format():
• nom, age = 'Dupont', 19
print('Mon nom est {}, mon âge est {}'.format(nom, age))
Mon nom est Dupont, mon âge est 19
f-string
• printf ('Mon nom est {nom}, mon age est {age}’)

42
Chapitre 3

Structure conditionnelle et itérative


Structure conditionnelle

If/Else

Instruction conditionnelle
Exécuté is la réponse est Vrai

Executé si la réponse est Fausse

44
Structure conditionnelle

condition est très souvent une opération de comparaison

if condition:
bloc d’instructions # indentation
else: # else doit être au même niveau que l’instruction if
bloc d’instructions # indentation
• Remarques: (1) « : “est nécessaire
(2) C’est l’indentation (le décalage par rapport à la marge gauche)
qui délimite le bloc d’instructions.
(3) La partie else est facultative

45
Structure conditionnelle

• If/Elif/Else
case = 2
if case == 1:
print("Cas 1")
elif case == 2:
print("Case 2")
elif 3 <= case <= 9:
print("Case 3 à 9")
else :
print('Autre case')
• Exemple
lettre = 'A'
if [Link]() in "aeiouy":
print(lettre + " est une voyelle")
else :
print(lettre + " n'est pas une voyelle") 46
Structure conditionnelle

Que se passerait-il si les deux conditions étaient vraies ?

47
Structure itérative

• La boucle For:

• Elle ne s’applique que sur une collection de valeurs (tuples, listes,…) .


• On peut générer des boucles indicées en générant une collection de valeurs
avec range(): suite arithmétique simple (séquence de valeurs entières)

1. range(4) 0123
2. range(1,4) 123
3. range(0,5,2) 024

48
Structure itérative

• La boucle For:
Séquence est une collection de valeurs peut être générée avec
range()

for indice in séquence:


bloc d’instructions # indentation
# suite du programme
• Les éléments (items) de la séquence sont issus d’un objet ≪ itérable
≫ : chaine de caractères, liste, tuple, dictionnaire ou range.
• On peut «casser» la boucle avec break
• On peut passer directement à l’itération suivante avec continue
• Des boucles imbriquées sont possibles
• Le bloc d’instructions peut contenir des conditions
49
Structure itérative

• La boucle For:

50
Structure itérative

• La boucle For/else:
notes = [15, "Absent", 8, 122, "Absent", 14] # une liste
for i in notes:
if i == "Absent":
continue # on ignore les absences
if not(0 <= i <= 20):
print("Erreur : Note invalide !")
break # on sort de la boucle
print(i) # on affiche les notes valides
else:
# ce bloc est exécuté si et seulement si la boucle for s’est déroulée
normalement (pas de break)
print("Ok") 51
Structure itérative

• La boucle While:

Opération de comparaison
Attention à la boucle infinie !

while condition:
bloc d’instructions # indentation
# suite du programme

Remarque:
• On peut «casser» la boucle avec break

52
Structure itérative

• La boucle While:

i=1 # initialisation de la variable de comptage


while i < 5:
print(i)
i += 1 # incrémentation i = i + 1
# suite du programme

53
Structure itérative

• La boucle While:
L'instruction break
i=1
while True:
print(i)
i += 1 # incrémentation
if i > 4 :
break
>>>
1
2
3
54
4
Structure itérative

• La boucle While:

Donnez le résultat du programme suivant

55
Structure itérative

• La boucle While:

Donnez le résultat du programme suivant

56
Structure itérative

• La boucle While:
L'instruction continue
i=0
while i < 5 :
i += 1
if i == 3 :
continue
print(i)
>>>
1
2
4
57
5
Structure itérative

• La boucle While:

• Saisir un entier strictement positif sachant qu’il n’existe pas de boucle


répéter.

58
Structure itérative

• La boucle While:
Remarque: En Python, pas de do/while
Le code suivant permet de faire la même chose :
while True:
# bloc d'instructions exécuté au moins une fois
if expression:
break
# suite du programme

59
Structure itérative

• Exercice boucle While:

60
Structure itérative

• Correction:

61
• Exercice 2:

• Ecrire un programme qui détermine si un entier positif est semi-


premier. Définition : Un nombre est dit semi-premier s’il est le produit
de deux nombres premiers non nécessairement distincts.
• Ecrire programme qui détermine tous les nombres semi-premiers
parmi les entiers de la forme abcabc où a,b,c sont des chiffres entre 0
et 9 avec a > 0. Exemples de chiffre de la forme abcabc : 136136,
524524, 908908, ...

62
62
• Correction ex2:

63
Chapitre 3

Types composés
Types composés

Les listes
• L'un des concepts les plus utiles
• Regrouper plusieurs variables ensemble (une sorte de conteneur !)

65
Types composés

• Indexation – accéder aux éléments dans une structure de données


• Le premier élément d'une liste a un indice 0

• Assurez-vous de toujours connaître la taille de chaque variable !

• Cela peut être facilement fait en utilisant la fonction len().Il


renvoie la longueur/taille de toute structure de données

66
Types composés
 Modifier une liste

67
Types composés
 Liste avec range()

range() - une fonction qui génère une séquence de nombres


sous forme de liste

68
Types composés
 Découpage des listes
• Découpage (slicing) : obtenez un ensemble particulier de sous-éléments à
partir d'une structure de données.
• Très utile et flexible.

69
Types composés

Ici, new_numbers est une référence vers numbers et non pas une
copie

Problème avec la copy superficielle

Copie supeficielle (shallow copy)

Ici, on a modifié le deuxième élément de la première sous-liste,


sauf que la modification a été appliqué sur les deux listes.
 [Link](liste) crée une copie de la liste mais référence ses
éléments
 Comment remédier à ce problème?
Ici, nouvelle liste est une copie de la liste ancienne  Solution : Deep copy

70
Types composés

Deep copy:

Ici, on a juste modifié le deuxième élément de la première sous-


liste,
=> [Link](liste) crée une copie de la liste et de ses
éléments

71
Types composés

 Liste : Liste de différents types


• Pas très utile, mais possible

72
Types composés
Liste en compréhension:
• Une liste en compréhension (comprehension list) permet
de créer une liste à partir d’une itération.
• Dans une liste de compréhension on ne peut utiliser que la
boucle for.
source = [1,5,8,12,7]
source = [1,5,8,12,7]
resultat = []
resultat = [v**2 for v in source]
for v in source:
print(resultat)
[Link](v**2)
print(resultat)

• Des boucles for imbriqués sont possible

73
Types composés

Liste en compréhension:
• On peut utiliser un traitement conditionnel
source = [1,5,8,12,7] source = [1,5,8,12,7]
resultat = [] resultat = [v**2 for v in source if (v % 2 == 0)]
for v in source: print(resultat)
if (v % 2 == 0):
[Link](v**2)
print(resultat)

• La boucle while n’est pas autorisée dans une liste en


compréhension 74
Types composés

Mutabilité

Un objet mutable – peut être modifié après création.

Un objet immutable - ne peut pas être modifié après création.

75
Types composés

 Tuple
• Les listes sont mutable, mais non pas les Tuples

• Essayez de changer le tuple dans votre programme

76
Types composés

 Tuple
Concatination:
(4,)+(4,5) => (4,4,5)
Fonctions Exemple Résultat
Tuple_name.index(x) Rtourne la première indice d’un T = (4, 4, 5) print(indice)
élément x indice = [Link](4) 0
Tuple_name.count(x) Retourne le nombre d’occurrence T = (4, 4, 5) print(occurrence)
d’un élément. occurrence = [Link](4) 2

77
Types composés

 Dictionnaire

• Ce sont en fait 2 listes


combinées – clés et valeurs
• On utilise les clés pour accéder
aux valeurs au lieu de les
indexer comme une liste
• Chaque valeur est mappée sur
une clé unique

78
Types composés

 Dictionnaire
Défini comme clé séparée par des virgules : paires de valeurs :

virgule

Accolades

79
Types composés

 Dictionnaire

•Les valeurs sont mappées sur une clé


•Les valeurs sont accessibles par leur clé
•Les clés sont uniques et immutables
•Les valeurs ne peuvent pas exister sans clé

80
Types composés

 Dictionnaire
Exemple

81
Types composés

 Dictionnaire
Accès à un dictionnaire:

Les valeurs sont accessibles par leurs clés (comme un


dictionnaire)

Notez qu'ils ne peuvent pas être indexés comme une liste


82
Types composés

 Dictionnaire
Modifier un dictionnaire
update : La méthode met à jour le dictionnaire avec les éléments d'un autre
objet dictionnaire ou d'un itérable de paires clé/valeur.
pop(clé) : supprime la valeur de la clé spécifiée ( clé obligatoire).

83
Types composés

 Dictionnaire
items / keys / values

84
Types composés

 Ensemble
• Listes qui ne peuvent pas contenir d'éléments dupliqués
• Fonctionnalité similaire aux listes
• Ne peut pas être indexé ou tranché
• Peut être créé avec {} ou vous pouvez convertir une liste en un
ensemble

85
Types composés

Fonctions Exemple Résultat


Set_name.add(x) Ajoute un élément ( s’il n’existe pas) à E = { 4 , 5 ,6} print(E)
un ensemble [Link](8) {8,4,5,6}
Set_name.pop() La méthode pop () supprime un E = {4, 6,9,8} print(m)
élément arbitraire de l'ensemble et m = [Link]() 6
renvoie l'élément supprimé print(E)
{4, 9, 8}
Set_name.remove(element) Supprime l’élément spécifié de E = {4,2,6} print(E)
l’ensemble [Link](2) {4,6}
Set_name.clear() Supprime tous les éléments de E = {4,2,6} print(E)
l’ensemble [Link]() set()
Set_name.union(Set_name_1, Union d’un ensemble avec un ou E1 = { 4 , 5 ,6} print(E4)
Set_name_2, …, Set_name_3) plusieurs ensembles E2 = {8 , 6 ,2} {2, 4, 5, 6, 8, 10, 15}
E3 = {4,6,10,15}
E4 = [Link](E2,E3)
Set_name.intersection(Set_name_1, Intersection d’un ensemble avec un ou E1 = { 4 , 5 ,6} print(E4)
Set_name_2, …, Set_name_3) plusieurs ensembles E2 = {8 , 6 ,2} {6}
E3 = {4,6,10,15}
E4 = [Link](E2,E3)
Set_name.difference(Set_name_1, Renvoie un ensemble qui est la E1 = { 4 , 5 ,6} print(E4)
Set_name_2, …, Set_name_3) différence entre un ensemble et un ou E2 = {8 , 6 ,2} {8}
plusieurs ensembles E3 = {2,10,15}
E4 = [Link](E1,E3)
Types composés

 Chaine de caractères
Une chaîne de caractères est une liste particulière avec des méthodes
associées
• définir une chaîne
s1 = "bonjour le monde"
print(s1) bonjour le monde
• longueur
long = len(s1)
print(long) 16
• accès indicé
s2 = s1[:7]
print(s2) bonjour

87
Types composés

 Chaine de caractères

non modifiable
s1[0] = "B"  Erreur: Une chaîne n’est pas modifiable
solution 1: convertir la chaine en une liste
s1 = "bonjour le monde"
s1 = list(s1)
s1[0] = "B"
''.join(s1) 'Bonjour le monde'
solution 2: utiliser la concaténation
s1 = "bonjour le monde"
s1 = "B" + s1[1:]
s1 'Bonjour le monde'

88
Types composés

 Chaine de caractères
Une chaîne peut être transformée en liste pour réaliser des traitements sophistiqués. L’outil
est très souple.
• Transformation en liste
S = "Bonjour le monde"
liste = list(S) (Toutes les opérations sur les listes sont possibles après)
print(liste) ['B', 'o', 'n', 'j', 'o', 'u', 'r', ' ', 'l', 'e', ' ', 'm', 'o', 'n', 'd', 'e’]
• Découpage par séparateur
S = "Bonjour le monde"
decoupe = [Link](" ") (Le séparateur peut être tout autre caractère)
print(decoupe) ['Bonjour', 'le', 'monde']
former une chaîne à partir d’une liste
SB = "".join(liste)
SB 'Bonjour le monde'

89
Fonctions Exemple Résultat
[Link](x) Retourne le nombre d’occurrence d’un chaine = "bonjour" print(occurrence)
élément. occurrence = [Link](‘o’) 2
[Link]("séparateur ") Découpage de la chaine par un chaine = "bonjour_le_monde" print(List)
séparateur List = [Link]('_') ['bonjour', 'le', 'monde']
[Link](x) Retourne la première indice d’un chaine = ‘bonjour’ print(indice)
élément x indice = [Link](‘b’) 0
"séparateur".join former une chaîne à partir d’une liste L = ['bonjour', 'le', 'monde'] print(chaine)
chaine = " ".join(L) bonjour le monde
[Link]() Vérifie si tous les caractères sont en chaine = "BONJOUR_LE_MONDe" print(resultat)
majuscule et renvoie True si c’est vrai resultat = [Link]() False
et False si non.
[Link]() Vérifier si tous les caractères sont en chaine = "BONJOUR_LE_MONDe" print(resultat)
miniscule et renvoie True si c’est vrai et resultat = [Link]() False
False si non.
[Link]() Retourne une copie dont toutes les chaine = "BONJOUR_LE_MONDe" print(resultat)
lettres sont en majuscule resultat = [Link]() BONJOUR_LE_MONDE
[Link](p) Retourne une copie dont toutes les chaine = « bonjour_le_MONDE" print(resultat)
lettres sont en miniscule resultat = [Link]() Bonjour le monde

[Link]() Vérifie si tous les caractères sont des chaine = "BONJOUR_LE_MONDe" print(resultat)
lettres et renvoie True si c’est vrai et resultat = [Link]() False
False si non. . Nb: l’espace est
considéré comme étant un caractère.
Types composés
Fonctions Exemple Résultat
[Link]() Vérifie si tous les caractères sont des s = '1242323' True
valeurs numériques et renvoie True si print([Link]()) True
c’est vrai et False si non. Une valeur True
numérique peut être un décimal , un #s = '²3455' False
numérique représenté par l’unicode s = '\u00B23455'
(chiffres romans, fraction, numérateurs print([Link]())
de devises). Vérifie si tous les
caractères sont des numériques et # s = '½'
renvoie True si c’est vrai et False si non. s = '\u00BD'
Nb: l’espace est considéré comme print([Link]())
étant un caractère.
s = '1242323'
s='python12'
print([Link]())
chaine. isalnum() Vérifie si tous les caractères sont des name = "M234onica"
valeurs alphanumériques (soit des print([Link]())
lettres ou des numériques) et renvoie
True si c’est vrai et False si non. # contains whitespace
name = "M3onica Gell22er "
print([Link]())

name = "Mo3nicaGell22er"
print([Link]())

name = "133"
print([Link]())
Types composés

• EXERCICES:

Ecrire un programme qui cherche tous les nombres divisibles par 7 mais non multiples de
5 et 2 entre 700 et 1099 (les deux inclus).
Les nombres obtenus doivent être affichés dans une liste. Afficher le nombre des nombres
obtenus.

Ecrire un programme permettant de générer la liste des nombres de Armstrong inférieurs à


1000.
(Un nombre est dit de Armstrong s’il est égal à la somme des cubes de ses chiffres (par
exemple, 370 = 33 + 73 + 03 = 27 + 343 + 0).

92
Types composés

Ecrire un programme Python qui partitionne un dictionnaire (clé: numéro de l’étudiant,


valeur: la moyenne) en deux sous dictionnaires:
 etudiantAdmis dont les clés sont les étudiants admis et les valeurs des clés sont les
moyennes obtenues (moyenne supérieurs ou égales à 10 ).
 etudiantNonAdmis dont les clés sont les étudiants non admis et les valeurs des clés sont les
moyennes obtenues (moyenne inférieur à 10).

Ecrire un programme qui génère deux ensembles A et B contenant chacun les diviseurs d’un
nombre saisi au clavier, vérifie si A est inclus dans B, et calcule l’union et l’intersection de
l’ensemble de diviseurs communs de deux nombres.

93
Types composés
Donnez les résultats de ces codes:

a)

b)

c)
94
Types composés

Étant donné ces définitions de variables :

Lequel des éléments suivants entraînera la levée d'une exception ?

Donnez le résultat de ce code

95
Types composés

1. Créer un dictionnaire et un ensemble vides

2. Quel est le contenu de la liste lst après l'exécution du code suivant ?


a)

b)

c)
96
Types composés

Supposons que nous choisissions de représenter un document texte comme un dictionnaire,


avec des noms de chapitres comme clés et leurs contenus textuels en tant que valeurs. Voici un
exemple de document utilisant cette représentation :

{ 'c1': 'i like cake’, 'c2': 'cake is life’, 'c3': 'cake cake cake’,'c4': 'i eat cake' }

Pour faciliter la recherche dans le document, il serait utile de construire un index où chaque
mot correspond à un dictionnaire qui à son tour indique combien de fois ce mot apparaît dans
un chapitre donné. Ici est l'index du document ci-dessus (notez sa structure - un dictionnaire
contenant des clés qui mappent aux dictionnaires imbriqués) :
{ 'cake': {'c1': 1, 'c2': 1, 'c3': 3, 'c4': 1}, 'eat': {'c4': 1}, 'i': {'c1': 1, 'c4': 1}, 'is': {'c2': 1}, 'life': {'c2':
1}, 'like': {'c1': 1} }
Implémentez le programme, qui prend un dictionnaire représentant un document texte et
renvoie un dictionnaire représentant un index pour ce document, comme décrit ci-dessus

97
Types composés
• Étant donné un index, comme vous l'avez construit pour le problème précédent, nous
souhaitons effectuer une recherche pour faire correspondre les chapitres à l'aide d'une
requête composée d'un ou plusieurs mots. Le résultat d'une recherche serait un dictionnaire
mappant les noms de chapitre au nombre total de fois où tous les mots de la requête
apparaissent dans ce chapitre (seuls les chapitres avec au moins une correspondance
apparaîtraient dans le résultat). Si nous devions exécuter la requête «you like cake» sur
l'exemple d'index présenté dans la précédente description du problème, on obtiendrait le
résultat :
{'c1': 2, 'c2': 1, 'c3': 3, 'c4': 1}
D'un autre côté, la requête « i like food » nous donnerait le résultat :
{ 'c1': 2, 'c4': 1 }

On suppose que la requête ne contient pas de mot dupliqués

98
Types composés

• Correction:

99
Types composés

Résultats des « print »

100

Vous aimerez peut-être aussi