Vous êtes sur la page 1sur 25

Ecole Nationale Supérieure

de Chimie de Kénitra

Module : Informatique 1
(S2)

Pr. Anass Nouri


Février 2020
(www.anassnouri.github.io)
Plan du cours

• Partie 2 : Programmation en Python

• Principales structures de donnés proposées par


Python

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Introduction

• Principales structurées proposées par Python

• Python propose des structures de données pour vous


faciliter la manipulation de données. Parmi les plus
utilisées, on trouve :

• Chaînes de caractères

• Listes

• Dictionnaires

• Tuples

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

• Rappel : une chaîne de caractère est une séquence de caractères


Ascii .
• La fonction len permet de retourner la longueur d'une
chaîne de caractères
# -*- coding: utf-8 -*-
chaine1 = "j'aime l’informatique, plus que la chimie !"
longueur = len(chaine1)
#stocke la longueur de la chaine dans la variable
longueur

• Le premier caractère de la chaîne est à l'indice 0, le


second à l'indice 1, … le dernier à l'indice n – 1.

• ATTENTION (piège classique) : une chaîne de


caractères de taille n a ses indices qui varient entre 0
et n-1 inclus.
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Chaînes de caractères

Concaténation des chaînes de caractères

• On peut utiliser l'opérateur ‘+’ sur 2 chaînes de caractères afin


de les concaténer (concaténation)

# -*- coding: utf-8 -*-


chaine1 = "Pour inventer,"
chaine2 = "il faut penser à côté
chaine3 =[Paul Souriau]"
citation = chaine1 + chaine2 + chaine3
print(citation) #affiche : Pour inventer, il faut penser à coté [Paul Souriau]

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

Méthodes de classe str


• Il est existent beaucoup de méthodes appartenant à la classe
des chaînes de caractères nommée str . Ces méthodes
permettent de manipuler les chaînes que l’on crée. Pour
découvrir quelles sont ces méthodes et comment elles
fonctionnent, nous pouvons utiliser le help dans la console de
python : help(str).
• Parmi ces méthodes, nous pouvons trouver :
- upper() : permet de transformer les caractères d’une
chaîne en majuscule.
- lower() : permet de transformer les caractères en
minuscules.
- capitalize() : permet de mettre en majuscule le premier
caractère d’une chaîne.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

• Exemple 1 :
# -*- coding: utf-8 -*-
nom_ecole = "ensc"
nouvelle_chaine = nom_ecole.upper() #le point avant upper sert à faire
appel à la méthode upper appartenant à la classe str et donc à la chaine que
j’ai créée qui est de ype str
print(nouvelle_chaine) #affiche ENSC
• Exemple 2 :
# -*- coding: utf-8 -*-
chaine=input("Bienvenue dans la question Quiz. Vous devez répondre
convenablement à la question pour quitter le quiz :\n Quelle est
la capitale du Maroc ? \n > ") #pour lire au clavier les chaînes de
caractères renseignées par l’utilisateur, utilisez input() si vous avez
Python3.x ou raw_input() si vous avez Python 2.x

while(chaine.lower()!="rabat"):
input("Faux ! Essayer encore \n >")

print("Bonne réponse, au revoir !")


Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Chaînes de caractères

• Explication, exemple n°2 :

Le programme dans l’exemple n°2 permet de poser une


question à l’utilisateur tant que la réponse est fausse.
L’utilisateur (qui exécute ce programme) ne peut en sortir que
si la réponse est juste, et peu importe si elle est en minuscule
ou en majuscule. Cette dernière contrainte (majuscule ou
minuscule) est gérée par le fait que l’on transforme la chaîne
renseignée par l’utilisateur en minuscule avant qu’elle ne soit
comparée à la bonne réponse.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

Formatage et affichage d’une chaîne de caractères


(1)
• Pour afficher une chaîne de caractères, nous pouvons, comme
vous le savez utiliser la fonction print(ma_chaine).
• De plus, nous pouvons utiliser la méthode format() de la classe
str.
# -*- coding: utf-8 -*-

prenom = "Akira"
nom = "Yoshino"
prix = "Nobel de chimie 2019"
decouverte = " \'Batterie en Lithuim\' "
print("Je m'appelle {0} {1} et j'ai eu le prix {2} pour la
découverte {3}".format(prenom, nom, prix, decouverte))
#affiche Je m’appelle Akira Yoshino et j'ai eu le prix Nobel de chimie 2019 pour
la découverte 'Batterie en Lithuim'

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

Formatage et affichage d’une chaîne de caractères


(2)• Autre syntaxe

# -*- coding: utf-8 -*-

presentation = "Je m'appelle {prenom} {nom} et j'ai eu le prix


{prix} pour la découverte {decouverte}".format(prenom="Akira",
nom="Yoshino", prix="Nobel de chimie 2019", decouverte="Batterie
en Lithuim"))
print(presentation)
#affiche Je m’appelle Akira Yoshino et j'ai eu le prix Nobel de chimie 2019 pour
la découverte 'Batterie en Lithuim'

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

Formatage et affichage d’une chaîne de caractères


(2)• Encore une autre syntaxe

# -*- coding: utf-8 -*-

presentation = "Je m'appelle {} {} et j'ai eu le prix {} pour la


découverte {}".format("Akira","Yoshino", "Nobel de chimie 2019",
"Batterie en Lithuim"))
print(presentation)
#affiche Je m’appelle Akira Yoshino et j'ai eu le prix Nobel de chimie 2019 pour
la découverte 'Batterie en Lithuim'

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

Conversion en type str (type chaîne de caractères


• Exemple

# -*- coding: utf-8 -*-

annee_naissance=int(input("Entrez votre année de naissance"))


age = 2020 - annee_naissance

print("Voici votre age: ",str(age)) #Conversion du type int vers str

print("""Si si, vous avez bien {votre_age}, il ne faut pas mal le


prendre ! ;) """.format(votre_age=str(age)))

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

Sélection d’un caractère ou d’une sous-chaîne dans


une chaîne de caractères
# -*- coding: utf-8 -*-
#sélection de caractères
chaine = "L'amour c’est de la Physique, le mariage c'est de la
Chimie [Alexandre Dumas]"
lettre_une = chaine[0]
lettre_fin = chaine[-1]
lettre_avantFin = chaine[len(chaine)-2]

# -*- coding: utf-8 -*-


#sélection de sous-chaînes
chaine = "L'amour c’est de la Physique, le mariage c'est de la
Chimie [Alexandre Dumas]"
mot1 = chaine[0:7] #affiche L'amour. On peut écrire aussi : chaine[:7]
auteur = chaine[62:len(chaine)] #affiche [Alexande Dumas]. On peut écrire
aussi : chaine[62:]

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Chaînes de caractères

• Les chaînes de caractères ne sont pas mutables (i.e. on ne


peut pas les modifier)

• Pour pouvoir modifier une chaîne, il faut la convertir en


liste, puis modifier la liste (qui, elle, est mutable) puis la
convertir en une chaîne (voir exemple dans la slide : )

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Listes

• Type : list

• La variable de type liste se définit entre [ et ]. Chaque


élément de la liste est séparé par une virgule

maliste = [1, 2, 'coronavirus', 2020, '&']


print(maliste)
maliste[2] = "Covid-19" //modification de coronavirus par Covid-19

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Listes

• Une liste ne contient pas nécessairement des objets (ou des


types) de même nature (entiers, chaînes de caractères…).

• Une liste est mutable.

• Une liste, comme une chaîne de caractères, est définie à l'aide


d'indices qui permettent de se repérer dans la liste, d'en extraire
des parties…

• Il existe de nombreuses fonctions pour pouvoir travailler sur des


listes (taille, ajout, suppression, recherche, max, min…)

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Listes

Création d'une liste vide


maliste = []
#ou
maliste = list()
type(maliste) #affiche <class list>

Ajout en fin d'une liste


maliste = [1,2,3]
maliste.append(-64) #ajout de 64 à la fin
print(maliste) #affiche 1 2 3 -64

Insertion en milieu de liste


maliste = ["Scadium","Titan","Chrome"]
maliste.insert(2,"Vanadium")
print(maliste)

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Listes

Concaténation de listes
maliste_1 = [10,20,30]
maliste_2 = [40,50,'a']
maliste_1.extends(maliste_2) #ou maliste_1+=maliste_2
print(maliste_1) #affiche 10 20 30 40 50 'a'

Suppression d’éléments d’une liste


maliste_1 = [10,20,30]
del maliste_1[1]
print(maliste_1) #affiche 10 30

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Listes

Parcours des éléments d'une liste


Avec while
ma_liste = ['a', 'b', 'c', 'd']
while i < len(ma_liste):
print(ma_liste[i])
i += 1
#affiche:
#a
#b
#c
#d

Avec for
ma_liste = ['a', 'b', 'c', 'd']
for i in ma_liste:
print(elt)
#affiche:
#a
#b
#c
#d
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Les Listes

Parcours des éléments d'une liste


Avec for + fonction enumerate

ma_liste = ['a', 'b', 'c', 'd']


for i,valeur in enumerate(ma_liste):
print("A l'indice{}, se trouve la valeur {}", format(i,valeur))
#affiche:
# A l’indice 0, se trouve la valeur a
# A l’indice 1, se trouve la valeur b
# A l’indice 2, se trouve la valeur c
# A l’indice 3, se trouve la valeur d

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Tuples

• Type : tuple

• La variable de type tuple se définit entre ( et ). Chaque


élément du tuple est séparé par une virgule
montuple = ('Roman', 'Le philosophe qui n’était pas sage',
2012, 'Laurent Gounelle', 'Pocket')

• Un tuple est en tout point identique à une liste sauf


qu'il n'est pas mutable : une fois défini, on ne peut plus
modifier un élément du tuple

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les Dictionnaires

• Type : dict

• La variable de type dictionnaire se définit entre { et }. On


commence par définir un dictionnaire vide, puis on
associe une clé et une valeur pour remplir notre
dictionnaire (la clé remplace l'indice de la traditionnelle
liste)

mondictionnaire = {}
mondictionnaire['a']=78
mondictionnaire['b']=79

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les dictionnaires

mondictionnaire = {}
mondictionnaire['mouse']=''souris'
mondictionnaire['keyboard']='clavier'

• Dans cet exemple, 'mouse' est une clé et 'souris' la valeur


associée. On peut pour connaître la valeur associée à une
clé effectuer l'opération suivante :

mondictionnaire = {}
mondictionnaire['mouse']='souris'
mondictionnaire['keyboard']='clavier'

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les dictionnaires

• Contrairement aux listes, chaines et tuples, les


dictionnaires ne sont pas ordonnés. On ne peut pas
utiliser d'indices pour se référer à un élément

• Un dictionnaire est mutable, comme une liste

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les dictionnaires

• Un autre exemple (des tuples dans


un dictionnaire…)

>>> arb = {}
>>> arb[(1,2)] = 'Peuplier' #(1,2) est un tuple
>>> arb[(3,4)] = 'Platane'
>>> arb[(6,5] = 'Palmier'
>>> arb[5,1] = 'Cycas'
>>> arb[7,3] = 'Sapin'
>>> print(arb)
{(3, 4): 'Platane', (6, 5): 'Palmier', (5, 1): 'Cycas', (1,
2): 'Peuplier',
(7, 3): 'Sapin'}
>>> print(arb[(6,5)])
palmier
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri

Vous aimerez peut-être aussi