Vous êtes sur la page 1sur 35

NSI

1ère Partie Les Types construits

Hajjem Lotfi
NSI

Introduction
Les types construits sont des structures qui permettent de stocker
plusieurs informations dans une même variable.
Les structures peuvent être des séquences ou des dictionnaires.
Séquence: C’est un conteneur ordonné d’éléments indexés par des
entiers indiquant leur position dans le conteneur. Elle peut être une
chaine de caractère, un tuple ou une liste.
Dictionnaire
NSI
Les Chaines de caractères
Une chaine de caractères (str) est une séquence de caractères
(majuscules, minuscules, chiffres, caractères spéciaux, accentués,…),
délimitée par des guillemets dans sa forme littérale (simple ' ou
double "). On peut généralement utiliser indifféremment l'un ou
l'autre type de guillemets.
Tous les caractères, à quelques exceptions près, sont acceptés pour
définir une chaine de caractères. Tout d'abord, il est évident que si
vous souhaitez utiliser le caractère ", vous ne pourrez pas l'utiliser
pour délimiter la chaine de caractères, mais vous devrez utiliser ', et
inversement.

5
Les chaines de caractères NSI

Dans l'exemple suivant, on est obligé d'utiliser des guillemets


doubles pour délimiter la chaine de caractères :

Si on veut créer des chaines de caractères contenant à la


fois ' et ", il faut utiliser une séquence d'échappement. Une telle
séquence commence par un backslash (\) suivi d'un ou
plusieurs caractères. Elle permet de représenter un caractère
spécial

7
Les Chaines de caractères NSI

Exemple: chaine= "NSI"


print(chaine) # affiche la chaine
print(" \" Spécialité NSI\" ")
print(" Spécialité \n de \n NSI ")
Pour afficher un texte sur plusieurs ligne, il l’écrire entre triples
guillemets.
Exemple: print(""" Ceci est un nouvel
... essai sur plusieurs
... lignes """)

7
Les chaines de caractères NSI

Quelques fonctions sur les chaines de caractères


Concaténation de plusieurs chaines: +
ch1="voici"+" un "+" texte"
Répéter une chaine un nombre de fois
Ch2= "Bon" *2Ch2="BonBon"
Taille d’une chaine: len(Ch2)
max(ch1): affiche le caractère ayant le plus grand code ASCII.
min(ch1): affiche le caractère ayant le plus petit code ASCII.
Ch2.lower(): transforme tous les caractères de la chaine en minuscule (ch2 devient
‘bon’)
Ch2.upper(): transforme tous les caractères de la chaine en majuscule (ch2 devient
‘BON’)
6
Les chaines de caractères NSI

Quelques fonctions sur les chaines de caractères


ma_chaine='hello world'
ma_chaine.capitalize(): Met juste la première lettre en majuscule ('Hello world')
ma__chaine.split(‘l’): Fait la séparation des caractères par un caractère prédéfini.
['He', '', 'o Wor', 'd']
ma_chaine.find('w'): Trouve la position d'une lettre (affiche 6): la premier
caractère se trouve à la position 0
ma_chaine.count('l'): Compter le nombre d’occurrence d'un caractère (Affiche 3)
ma_chaine.strip(): Supprimer les espaces en début et fin de chaine

7
Les chaines de caractères NSI

Quelques fonctions sur les chaines de caractères


x in y: c’est une expression booléenne qui prend vrai si la chaine x fait partie de la
chaine y.
Exemple: x=‘ta‘ et y=‘ratata‘
On peut convertir une chaîne de caractères en nombre quand cela est possible, il
faut alors connaître le type de la valeur finale :
r="34.5"
i="21"
int(i) #renvoie un nombre de type entier
float(r)#renvoie un nombre de type flottant
A l’inverse la commande str(x) permet de convertir un nombre en chaîne de
caractères.

8
Les chaines de caractères NSI

Quelques fonctions sur les chaines de caractères


Enfin, on peut tester le type de donnée contenu dans la chaine (True si vrai, False sinon)
ma_chaine.isalpha() #Teste s'il n'y a exclusivement que des lettres

ma_chaine.isdigit() #Teste s'il n'y a que des chiffres

ma_chaine.isalnum() #Teste s'il y a des caractères alphanumériques

ma_chaine.isspace() #Teste s'il n'y a que des espaces


Remarque: En tapant le nom d’une variable de type chaîne de caractères suivi d’un . (par exemple
y.), on accède à toutes les méthodes permettant de travailler sur une chaîne de caractères. On peut
ainsi savoir si la chaîne est constituée uniquement de caractères alphanumériques (isalphanum),
couper la chaîne selon un caractère donné (split)… Pour obtenir de l’aide sur une méthode, on tape
help(a.islower) par exemple.

9
Les chaines de caractères NSI

Quelques fonctions sur les chaines de caractères

a.Capitalize() a.isalnum() a.join a.rsplit


a.casefold a.isalpha() a.ljust a.rstrip
a.center a.isdecimal() a.lower() a.split
a.count a.isdigit() a.lstrip a.splitlines
a.encode a.isidentifier() a.maketrans a.startswith
a.endswith a.islower() a.partition a.strip
a.expandtabs a.isnumeric() a.replace a.swapcase
a.find a.isprintable() a.rfind a.title
a.format a.isspace() a.rindex a.translate
a.format_map a.istitle() a.rjust a.upper()
a.index a.isupper() a.rpartition a.zfill

10
Les chaines de caractères NSI

Accès à un caractère d’une chaine


• ch1[0]: permet d’accéder au premier caractère de la chaine (ch1[1]
le 2ème )
• ch1[-1]: permet d’accéder au dernier caractère de la chaine (ch1[-2]
avant dernier).
• ch1[n:p]: permet d’afficher les caractères de ch1[n] jusqu’à ch1[p-1]
• Remarque: on ne peut pas modifier les caractères d’une chaîne
existante. Il faut en créer une nouvelle à partir de celle que l’on
souhaite modifier.

11
NSI

Tuple
Définition: Un p-uplet tuple en Python est une collection ordonnée et non
modifiable d’éléments éventuellement hétérogènes.
Syntaxe: Éléments séparés par des virgules, et délimités par de parenthèses.
(ce délimiteur est facultatif).
Exemples: tab1=(): un tuple vide
Tab2= (2,6,10, "a", False):un tuple à 5 éléments
Accès à un élément d’un tuple: Les éléments du tuple sont indicés de 0 à
nombre_éléments-1.
Tab2[0]=2; Tab2[3] ="a"; Tab2[4]=False
On peut parcourir la liste des indices à l'envers, tab2[-1] retourne le
dernier élément du tuple tab2 Tab2[-1]=False
NSI
Tuple
Remarques:
On peut réaffecter un tuple: Tab1=(0,1) il n’est plus vide
On ne peut pas modifier les valeurs d’un tuple
Tab2[0]=5 conduirait à l'erreur : 'tuple' object does not support item
assignment
Tab3=-1,0,1  tuple valide même sans parenthèse
a,b,c=Tab3  Instruction valide (a=-1, b=0 et c=1)
Remarques:
Quelques fonctions sur les tuples:
len: Calcul le nombre d’éléments d’un tuple (len(Tab2)=5)
in: Vérifie l’existence d’un élément dans un tuple
Exemple: 1 in Tab1 retourne True mais "1" in Tab1 retourne False
NSI
Tuple
Afficher les éléments d’un tuple
Solution1 Solution2

i prend les indices des éléments de i prend les éléments de tuple (1, 5,
tuple (0,1, 2, 3 et 4) 6, ‘a’ et False)
Tab3[i] représente la valeur relative
à la position i 1, 5, 6, ‘a‘ et False
NSI
Les listes (Tableaux)
Un tableau (liste en Python) est une suite de valeurs séparées par des virgules et
délimitées par des crochets []. Contrairement aux tuples la liste est un objet
modifiable (mutable).
Exemples:
Une liste vide : listevide=[]
liste1 = [1,2,3] # une liste d'entiers
liste2 = [1.2,0.2,3.7] # une liste de flotants
liste3 = [[1,2,3],[4,5],[10,20,30]] # une liste de listes
liste4=["début",10,True,"fin"] # une liste d’éléments de types différents
liste5 = ['a','b','c'] # une liste de str
liste6 = [(1,2),(4,5)] # une liste de tuples, les tuples ne sont pas modifiables.
Les listes (Tableaux) NSI
Accès à un élément d’un tableau:
Comme pour un tuple, on accède à la valeur i de la liste L en écrivant L[i], mais,
contrairement au tuple, cet accès est autorisé en écriture : l'instruction L2[0]=0, par
exemple, est tout-à-fait licite.
Soit la liste: maliste=[20,30,40,50,60]
maliste[0]=20; maliste[1]=30 maliste[4]=60 maliste|-1]=60
maliste[n:p] renvoie les éléments de la position n à p-1 de maliste.
maliste[1:3] renvoie [30,40]
Si on ne renseigne pas l’indice de fin, Python prend le dernier indice et si on ne
renseigne pas l’indice de début, cela correspond à l’indice 0 par défaut.
maliste[1:] #renvoie [30,40,50,60]
maliste[:2] #renvoie [20,30]
maliste[:]#renvoie [20,30,40,50,60]
Les listes (Tableaux) NSI

Initialiser une liste:


Liste vide: L=[] ou L=list()
Initialiser L avec des valeurs: L=[10,20,30]
Remplissage automatique L=5*[0]  L=[0,0,0,0,0]
L=list(range(5))  L=[0,1,2,3,4]
Ajouter un élément à une liste:
Soit la liste L=[10,20,30]
La fonction append(elemt) permet d’ajouter elemt à la fin d’une liste
Exemple: L.append(40) # L devient [10,20,30,40]
Les listes (Tableaux) NSI

Insérer un élément dans une liste:


On peut insérer l’élément elemt dans la liste à l’indice indice et décaler les éléments suivant avec :
liste.insert(indice, elemt)
Exemples: L.insert(2,40) # on ajoute 40 en 3e position de la liste (ou à l'indice 2)
L=[10,20,40,30,40]
L.insert(20,50) # l'indice 20 est supérieur à la longueur de la liste, on ajoute à la fin de la liste
L=[10,20,40,30,40,50]
NSI
Les listes (Tableaux)
Supprimer un élément d’une liste:
La fonction pop permet de supprimer le dernier élément de la liste
Exemple: L.pop()  L=[10,20,40,30,40]
L.pop(i): Permet de supprimer l’élément de position i dans la liste
Exemple: L.pop(1) permet de supprimer L[1] (20) L=[10,40,30,40]
Remarque: La fonction pop permet de renvoyer l’élément supprimé.
 L’instruction a=L.pop() permet de:
 supprimer le dernier élément
 Affecter la valeur supprimée à la variable a.
La fonction remove(elemt) permet de supprimer la première apparition de elemt dans la liste
Exemple: L.remove(40) supprime la première apparition de 40 dans la liste  L=[10,30,40]
Remarque : si l’élément que l’on souhaite supprimer n’existe pas dans la liste, un message
d’erreur apparaît.
Les listes (Tableaux) NSI

Quelques fonctions sur les listes:


len(maliste) : Retourne la taille d’une liste
L’opérateur + permet de concaténer deux listes :
a=[1,2,3],b=[4,5],c=a+b c=[1,2,3,4,5]
L’ opérateur * permet de dupliquer une liste n fois a=[1,2],
a*3[1,2,1,2,1,2]
Déterminer l’indice d’un élément noté val dans une liste :
maliste.index(val)(on récupère le premier indice ; si l’élément apparaît
plusieurs fois, si l’élément n’apparaît pas un message d’erreur l’indique).
Compter le nombre de fois qu’un élément apparaît : maliste.count(val)
Copier une liste : newlist=maliste.copy()
Trier les éléments d’une liste maliste.sort()
Les listes (Tableaux) NSI
Les listes définies en compréhension: C’est une liste définie en utilisant une
boucle for
Exemple: Créer une liste contenant le carré des entiers de 0 à 10.
Solution1(en utilisant la fonction append):

Solution2 (liste définie ne compréhension):


NSI
Les listes (Tableaux)
Quelques exemples de constructions en compréhension de la liste L :

L=[2*n for n in range(1,10)]

L=[n**2 for n in range(1,10)]

L=[-n for n in range(1,10) if n%2==0]

L=[n for n in range(1,10) if n>3 and n%3==0]

L=["m"+c for c in ["a","i","u","e","o"]]

Avec T=[1,2,3,4,5] et L=[n-5 for n in T]


Les listes (Tableaux) NSI
Parcourir une liste:
Une boucle directe sur la liste: i contient les valeurs de la liste

Une boucle avec les indice  i contient l’indice (le numéro) de la case

 L[i] contient la valeur de la case

Quelques opérations sur les listes:


Somme des éléments d’une liste
Les listes (Tableaux) NSI
Plus grande valeur dans une liste:

Plus petite valeur dans une liste:


NSI
Les listes (Tableaux)
Liste de Listes ou matrice:
Définition: Un tableau de NL lignes de NC colonnes est réalisé en Python en
définissant une liste de NL éléments, chaque élément de cette liste étant une
liste de NC éléments.
Exemple: L=[[1,2,3,4,5],[6,7,8,9,10]] est un tableau de 2 lignes de 5 colonnes.
L[0]= [1,2,3,4,5]
L[1]=],[6,7,8,9,10]
Pour obtenir le 1er élément de L[0], je dois taper L[0][0]
pour obtenir la valeur 10 je dois taper L[1][4].
Les Dictionnaires NSI
Définition: Un dictionnaire en Python est une suite de paires (clé : valeurs) séparées
par des virgules et délimitées par des accolades. Les clés peuvent être des entiers
(int), des chaînes de caractères (str) et même des tuples.
Exemple: d={'clé1':'valeur1','clé2':'valeur2'}
Créer un dictionnaire python
Pour initialiser un dictionnaire , on utilise une des syntaxes suivantes qui va créer
une variable de type dictionnaire, vide.
• dict_vide={}
• dict_vide=dict()
NSI
Les Dictionnaires
Créer un dictionnaire python
On peut aussi initialiser un dictionnaire avec des valeurs:
Exemples: dé={1:1, 2:3, 3:5, 4:5, 5:1, 6:1}  les clés et les valeurs sont des entiers
exp={1.1:1, 1.2:5, 1.3:10, 1.4:5, 1.5:3, 1.6:1, 1.7:1}  les clés: réels et valeurs: entiers.
Tel={'Marie': 62111111 ,'Moussa': 62111122,'Chérine': 62111111} Clé: chaine et Valeur: Entier
Dic={"Nom":"Modiano", "Prénom":"Patrick", "Profession":"écrivain", "Promo":"1962"}. Clé:Chaine et
Valeur: Chaines
Remarque: On peut avoir des clès et/ou des valeurs de types différents
Ajouter ou modifier une valeur dans un dictionnaire python
Pour ajouter ou modifier des valeurs à un dictionnaire il faut indiquer une clé
ainsi qu’une valeur sous la forme nom_dico[clé]=valeur.
Si la clé existe, sa valeur sera modifiée sinon la combinaison Clé:Valeur sera
ajoutée à la fin du dictionnaire
Les Dictionnaires NSI
Ajouter ou modifier une valeur dans un dictionnaire python
Exemple: Pour le dictionnaire Tel={'Marie': 62111111 ,'Moussa':
62111122,'Chérine': 62111111}
Tel['Chérine']=62111110
Tel['Pierre']=611223344
Tel['Franck']=611223599
Tel['Yannis']=611223355
 Après exécution, on remarque que:
• la valeur de Chérine à été modifiée
• Les éléments Pierre, Franck et Yannis ont été ajoutés à la fin du
dictionnaire
Les Dictionnaires NSI

Récupérer une valeur dans un dictionnaire


Pour récupérer une valeur dans un dictionnaire, on utilise la syntaxe:
Nom_Dico[Clé]
Exemple:
print(Tel['Franck']) affiche la valeur de la clé ‘Franck‘ 611223599
print(Tel['Ahmed'] ne va rien afficher car la clé 'Ahmed' n’existe pas
Supprimer une valeur dans un dictionnaire
Pour supprimer un élément on peut utiliser :
l’instruction intégrée del dont la syntaxe est: del nom_dic[clé]
Exemple: del Tel[’Pierre’]
la méthode pop() dont la syntaxe est nom_dic.pop(clé)
Exemple: Tel.pop(’Yannis’)
Les Dictionnaires NSI

Parcours d’un dictionnaire


La méthode keys(): Elle renvoie une séquence contenant les clés du dictionnaire.
Exemple: Tel.keys()affiche: dict_keys(['Marie', 'Moussa', 'Chérine', 'Franck'])
La méthode values(): Elle renvoie une séquence contenant les valeurs mémorisées
dans le dictionnaire.
Exemple: Tel.values() affiche: dict_values([62111111, 62111122, 62111110,
611223599])
Méthode items(): Elle retourne une séquence de tuples. Chaque tuple contient deux
éléments, la clé et la valeur correspondante.
Exemple: Tel.items() affiche dict_items([('Marie', 62111111), ('Moussa',
62111122), ('Chérine', 62111111), ('Franck', 611223599)])
Les Dictionnaires NSI

Parcours d’un dictionnaire


Méthode 1(parcours des clés) :

 On aura comme résultat


NSI
Les Dictionnaires
Parcours d’un dictionnaire
Ou bien

 On aura comme résultat:


Les Dictionnaires NSI

Parcours d’un dictionnaire


Méthode 2: Parcours des valeurs

 On aura comme résultat

 Avec cette méthode, on n’a pas accès aux clés du dictionnaire


Les Dictionnaires NSI

Parcours d’un dictionnaire


Méthode 3 (parcours des clés et des valeurs) :

 On aura comme résultat


NSI

Vous aimerez peut-être aussi