‘2406/2021 PYTHON 3 TC BGM2 2021 - Jupyter Notebook
#3 python
Python prépa GM1
Partie |: Introduction a la programmation Python
1- Introduction
1.1- Python?
Python est un langage de programmation puissant et facile & apprendre. II dispose de structures de données
de haut niveau et permet une approche simple mais efficace de la programmation orientée objet. Parce que sa
syntaxe est élégante, que son typage est dynamique et quil est interprété, Python est un langage idéal pour
Técriture de scripts et le développement rapide d'applications dans de nombreux domaines et sur la plupart des
plateformes,
Python est un langage de programmation open source, oréé en 1991 par Guido van Rossum, aux Pays-Bas. Le
nom Python vient d'un hommage a la série télévisée Monty Python's Flying Circus dont G. van Rossum est fan.
La premiere version publique de ce langage a été publiée en 1991
Guido van Rossum
La demniére version de Python est la version 3 (plus précisément, la version 3.8). La version 2 de Python est
désormais obsoléte et n'est plus maintenue depuis le ter janvier 2020. Dans la mesure du possible évitez de
localhost 3888/notebooksiPYTHON 3 TC BGM2 2021.ipyn® 182‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
tutiliser.
Ce cours est done basé sur Python 3
1.2- Pourquoi Python ?
Ce langage de programmation présente de nombreuses caractéristiques intéressantes
lest multiplateforme. C’est-a-dire quill fonctionne sur de nombreux systémes d'exploitation
Windows, Mac OS X, Linux, Android, iOS, ete.
lest gratuit, Vous pouvez linstaller sur autant dordinateurs que vous voulez (méme sur votre
téléphone })
C'est un langage de haut niveau. Il demande relativement peu de connaissance sur le
fonctionnement d'un ordinateur pour étre utilisé,
C'est un langage interprété. Un script Python n’a pas besoin d'’étre compilé pour étre exécuté,
contrairement a d'autres langages comme le C ou le C++.
llest orienté objet. C’est-a-dire quil est possible de concevoir en Python des entités qui
miment celles du monde réel (une cellule, une protéine, un atome, etc.) avec un certain nombre
de ragles de fonctionnement et diinteractions.
Il est relativement simple a prendre en main.
Enfin, il est trés utilisé en analyse de données, avec des modules spécialisés de nombreux
domaines scientifiques.
Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses formations de
enseignement supérieur.
De plus, suivant le site ieee spectrum (https://spectrum ieee. orgicomputing/software/the-top-programming-
languages-2019), Python est le meilleur Langage de programmation en Septembre 2019, comme vous pouvez
le voir sur la figure suivante.
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 2182‘2406/2021 PYTHON 3 TC BGM2 2021 - Jupyter Notebook
Language Ranking: IEEE Spectrum
Ronk _Lanovage Tye Sere
Python. ® o@
Bo «o¢
CH o9@
SS
c# e008
BH Matlab a |e”
‘Swift oo.
Go e a
2- Installation, mode d’accés et premiers pas
2.1- Installation
Python étant multiplateforme, il peut sinstaller sur les systémes d'exploitations tels que Lunix, Mac ou
Windows. Le lien suivant permet de trouver une version appropriée de Python a installer sur votre ordinateur.
‘Télécharger et installer Python (hitps:/www,python,orgidownloads/)
2.2- Mode d’accés
ll existe essentiellement deux fagons d'acceder a Python:
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 31822aiosi2021
PYTHON 9 TC BGM2 2021 - Jupyter Notebook
Le mode interactif pour executer directement des commandes ou intructions Python. Ce mode
dacces est le plus basique, et peut se retrouver en ligne de commande, avec I'IDLE de Python,
etc. Mais on le retrouve egalement sur les IDE Pythons, qui sont beaucoup plus complets, et
permettent de faire plus ou moins des projets.
ligne de commande Window
Python 3.7.3 (v3.7.3:efdecéedl2, Mar 25 2019, 21:26:53) [MSC v.19:
ntel)] on win32
Type "help", "copyright", "er or "license()" for more informat
IDLE Python
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
4132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Le mode non-interactif pour écrire des programmes entiers, puis les executer.
Python 3.7.3 (v3.7.3:efdecéedl2, Mar 25 2013, 2 3) (MSC v.1916 32 bit (
ntel)] on win32
Type "help", "copyright", "credits" or "license()" for more information
IDLE Python
Pycharm
Spyder
<< jupyter PYTHON 3 PREPA GM1 jaso--an PB ceoout
F View Inset Cal Kemal Widgets Hel 7 7 |Pyton3
wf) a | mw) Weccuer | eM | Markcoun +) (=
Entrée [8]: W) 1 | type(a)
out(s]: Float
Jupyter Notebook
Entrée [2]:
1 print("Hello!")
Hello!
2.3- Les commentaires en Python
Les commentaires en Python commencent avec un caractére croisillon, #, et s'étendent jusqu’a la fin de la
ligne. Un commentaire peut apparaitre au début d'une ligne ou a la suite d'un espace ou de code, mais pas
tintérieur dune chaine de caractéres littérale, Un caractare croisillon a Fintérieur d'une chaine de caractares est
juste un caractére croisillon. Comme les commentaires ne servent qu’a expliquer le code et ne sont pas
interprétés par Python, ils peuvent étre ignorés lorsque vous tapez les exemples
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 5132‘2406/2021
Entrée [1]:
1 #Ceci est Le premier commentaire
2. # deuxieme commentaire
3 n=l #n recoit 1
4 #Et maintenant Le troisieme
5 texte=
Entrée [4]:
1 print (texte)
2 dprint("Soyez Les bienvenus”)
#Ceci n'est pas un commentaire, parce qu'il est entre doubles quotes.
PYTHON 2 TC BGM2 2021 - Jupyter Notebook
#Ceci n'est pas un commentaire, parce qu'il est entre doubles quotes.
2.4- Utilisat
Entrée [6]:
1 1446 #addition
out[6]:
a7
Entrée [7]:
1 3-65 Asoustraction
out [7]:
-62
Entrée [8]:
1 34%455 #hultiplication
out [8]:
15476
Entrée [12]:
1 67/56 #Division reelle
out [12]:
1,1964285714285714
Entrée [13]:
1 67//36 #0ivision entiere
out [13]:
1
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
in de Python comme une calculatrice
3132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [9]:
1 67%56 #ModuLo
out[9]:
a
Entrée [29]
1 4**3 #4 exposant 3
out[29]:
64
Entrée [30]:
1 442%6-3 # 13
out[3@]:
13
Entrée (31)
1 (442)*(6-3) # 18
out[32]:
18
3- Les variables en Python
3.1- Les caractéristiques d’une variable
Les variables sont 'un des concepts qui se retrouvent dans la majorité (et méme, en 'occurrence, la totalité)
des langages de programmation
Aulant dire que sans variable, on ne peut pas programmer, et ce n'est pas une exagération.
Une variable est une sorte de boite virtuelle dans laquelle on peut mettre une (ou plusieurs) donnée(s). Lidée
est de stocker temporairement une donnée pour travailler avec.
Pour la machine une variable est une adresse qui indique emplacement de la mémoire vive oli sont stockées
les informations que nous avons lies avec.
Une variable est généralement caractérisée par son identificateur ou nom, sa valeur puis son type.
3.2- Déclaration d’une variable
Pour créer une variable en Python, il suffit de choisir un nom et affecter une valeur a ce nom, c’est-a-dire
stocker une valeur dans notre variable.
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 7182‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Le choix du nom pour nos variables est libre en Python. II faut cependant respecter les régles usuelles
suivantes
Le nom doit commencer par une lettre ou par un underscore ;
Le nom d'une variable ne doit contenir que des caractéres alphanumériques courants (pas
d'espace dans le nom d'une variable si de caractéres spéciaux comme des caractéres
accentués ou tout autre signe) ;
On ne peut pas utiliser certains mots qui possédent déj
langage (on parle de mots “réservés")
Une signification spéciale pour le
Mots réservés Python
and del fron none true
as elif global nonlocal try
assert else if not hile
break except. import or with
class false in pass yield
continue finally is raise
def for lambda return
NB: les noms de variables en Python sont sensibles a la casse, ce qui signifie qu'on va faire une différence
entre emploi de majuscules et de minuscules : un méme nom écrit en majuscules ou en minuscules créera
doux variables totalement différentes.
3.3- Affectation d’une variable
Pour affecter ou “assigner’ une valeur a une variable, Python utilise un opérateur qu'on appelle opérateur
dlaffectation ou d'assignation et qui est représenté par le signe =
Attention, le signe = ne signifie pas ici égalité d'un point de vue mathématique : c'est un opérateur
diaffectation
Le signe = ne sert pas a dire que la valeur est égale au nom de variable ou que la variable “vaut" cette valeur, i
indique simplement qu'on affecte ou qu'on stocke une certaine valeur dans un conteneur, ou que la variable
regoit cette valeur.
_Exemple:
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 32‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [42]:
1 age = 25 # La variable age recoit La valeur 25
NB: Le symbole de I'égalité est plutét == en Python.
3.4- Type d’une variable
Python définit de nombreux types de données qu’on va pouvoir stocker dans nos variables et manipuler & loisir
ensuite : nombres entiers, décimaux, complexes, chaines de caractéres, booléens, listes, tuples, dictionnaires,
etc.
Dans cette partie, nous allons nous contenter de passer en revue les types de données les plus simples a se
représenter (nombres, booléens). Les autres types de données seront abordées dans les parties & venir.
Les types numériques int, float et complex
Le type int qui représente tout entier positif ou négatif ;
Le type float qui représente les nombres décimaux et certaines expressions scientifiques
comme le e pour désigner une exponentielle par exemple;
Le type complex qui représente les nombres complexes ou nombres imaginaires et qui se sert
de la lettre j pour représenter la partie imaginaire d’un nombre
Le type de valeurs boo! ou booléen Le dernier type de valeurs simple Python est le type bool (pour
“booléen")
Le type de valeur booléen est un type qui ne contient que deux valeurs qui servent représenter deux états.
Les deux valeurs sont True (vrai) et False (faux). Attention en Python a bien indiquer des majuscules car dans
le cas contraire Python ne reconnaitra pas ces booléens.
Pour stocker un booléen dans une variable, il ne faut pas utiliser de guillemets : si on les ulise, ce seront les
chaines de caractéres “True” et “False” qui seront stockés et on ne va pas pouvoir effectuer les mémes
opérations,
Les valeurs booléennes sont trés utilisées en informatique. Elles sont notamment trés utiles pour valider ou
invalider un test et sont au coour des différentes structures de contrdle en général.
Entrée [5]:
1. ok="True"
2 type(ok)
out[5]:
str
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 32‘2406/2021 PYTHON 3 TC BGM2 2021 - Jupyter Notebook
Entrée [6]:
1 ok=True
2 type(ok)
out[6]:
bool
Entrée [14]:
1 asad
2 type(a) #type() est une fonction python aui permet d'afficher Le type d'une variable
out[14]:
int
Entrée [15]:
1 as7.98
2 type(a)
out[15]:
float
Entrée [37]:
1 b=45.6
2 type(b)
out [37]:
float
Entrée [38]:
12347}
2 type(c)
out[38]:
complex
Entrée [7]:
1 d=3+j # preciser Le coefficient de j meme s'il est 1
2 type(d)
NameError Traceback (most recent call last)
in
----> 1 d=3+j # preciser le coefficient de j meme s'il est 1
2 type(d)
NameError: name 'j' is not defined
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 10132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [8]:
1 d=341j # preciser Le coefficient de j meme s'il est 1
2 type(d)
out[a]:
complex
4- Les opérateurs Python
Voir cours algorithmique
5- Structure d'un programme Python
5.1- Les instructions
Un programme Python est composé diinstructions. Une instruction est un ordre unitaire donné a un programme.
Par exemple afficher Bonjour est une instruction, de méme que calculer 1+1
En Python, contrairement aux autres langages, les limites des instructions et des blocs sont définies par la mise
en page.
Les accolades ({}) fréquemment utilisées pour définir les blocs sont remplacées par les niveaux d'indentations.
En définitive, Python oblige a écrire du code lisible, et & prendre de bonnes habitudes conservables dans
d'autres langages, ce qui est fait un langage idéal pour apprendre la programmation.
5.2- Bloc d’instructions
Un bloc diinstructions est une suite d'instructions qui est alignée sur la méme tabulation. Les blocs
dinstructions sont créés par les instructions de contrdles comme if, while et for, ainsi que par les instructions.
permettant de déclarer des fonctions.
‘Sous Python, toutes les instructions composées ont toujours la mame structure : une ligne d'en-tate terminée
par un double point, suivie d'une ou de plusieurs instructions indentées sous cette ligne d'en-téte.
Bloc 1
Ligne den-téte +
Bloc 2 (suite)
Bloe 1 (suite)
‘Sous Python, toutes les instructions composées ont toujours la méme structure : une ligne d'en-téte terminée
par 2 points (:), suivie d'une ou de plusieurs instructions indentées sous cette ligne d'en-téte.
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 1132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Sily a plusieurs instructions indentées sous la ligne d'en-téte, elles doivent 'étre exactement au méme niveau.
Ces instructions indentées constituent ce que nous appellerons désormais un bloc dinstructions.
Un bloc diinstructions est une suite diinstructions formant un ensemble logique, qui n'est exécuté que dans
certaines conditions définies dans la ligne d'en-téte.
Entrée [20]:
1 #Ce bloc d’instruction est collé contre le bord gauche du fichier
2 print ("Je suis dans le premier bloc")
3 print ("Je suis toujours dans le premier bloc”)
4
5 if (a == 12) : #L'instruction ‘‘if'' initie un nouveau bloc
6 #Ce bloc est a quatre espace du bord
7 print ("Je suis dans le second bloc")
8 print (“Je suis encore dans le second bloc")
9
10 if (b == 13):
uu AIL est possible d'imbriquer des blocs dans des blocs
2 print (“Je suis dans un troisieme bloc")
B print ("et ici aussi")
4
15 print (“Je reviens dans le second bloc")
16
17 print ("Je suis revenue dans le premier bloc*)
Je suis dans le premier bloc
Je suis toujours dans le prenier bloc
Je suis revenue dans le premier bloc
6- Saisie et Affichage
6.1- La fonction print)
La fonction print sert a afficher des données sur la sortie standard, qui est I'écran.
Exemples :
Entrée [43]:
1 print("Hello worlé!")
Hello World!
Entrée [9]:
1 inti,
2 print
int2 = 1, 2 #affectation multiple
le résultat de “+str(inti)+' + ‘+str(int2)+" est : “+str(inti+int2))
le résultat de 1+ 2est : 3
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
12182‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [10]:
1 print("le résultat de",int,'+',int2,"est :", inti+int2)
le résultat de 1+ 2 est
Entrée [45]:
1 print("et le résultat de Xd + %d est Xf" % (intl, int2, inta + int2))
et le résultat de 1+ 2 est 3.000000
Entrée [12]:
1 print(#"et le résultat de {intl} + {int2} est {intl + int2}")# a partir de 3.6
et le résultat de 1+ 2 est 3
6.2- La fonction input()
Cette fonction demande 4 l'utilisateur d'entrer une donnée qui va servir de valeur affectée a une variable.
Attention, par défaut, cette valeur est de type “string” ou “chaine de caractére. si vous voulez un autre type de
variable, il faudra la convertir.
Entrée [11]:
1 nombre=input('Un nombre SVP: ')
Un nombre SVP: 654
Entrée [ ]:
1 ECRIRE("Un nombre SVP")
2 LIRE(nombre)
Entrée [12]:
1 type(nonbre)
out(12]:
str
Entrée [13]:
1 nombret=input('Un nombre SVP.
2 nombre2=input('Un nombre SVP:
3. print(nombre1+nombre2)
Un nombre SVP: 986
Un nombre SVP: 6587
9866587
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
19932‘2406/2021 PYTHON 3 TC BGM2 2021 - Jupyter Notebook
Entrée [14]:
1 nombre=int(input("Un nombre SVP: "))
2 type(nombre)
Un nombre SVP: 456
out(14]:
int
Entrée [15]:
1 nonbre=float(input("Un nombre SVP: “))
2 type(nombre)
Un nombre SVP: 45.265
out[15]:
float
Entrée [16]:
1 nom=input('Votre nom SVP: ')
Votre nom SVP: KONAN
Entrée [17]:
1 non
out [17]:
*KONAN'
Entrée (21):
1 type(nom)
out [2a]:
str
Entrée [31]:
1 nombre=int(input("Un nombre SVP:
Un nombre SVP: 45
Entrée [32]:
1 type(nonbre)
out[32]:
int
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
1432‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [36]:
1 nombre=float(input("Un nombre svP: "))
Un nombre SVP: 45.69
Exercice: Ecrire un programme qui demande 2 nombres a lutilisateur, puis affiche leur somme,
Entrée [18]
1 nombrei=float(input("Le premier nombre SVP:
2 nonbre2=Ffloat(input("Le deuxieme nombre SVP:
3. print(nombret, '+',nombre2, '=" ,nombrel+nombre2)
Le premier nombre SVP: 45
Le deuxiene nombre SVi
45.0 + 56.0 = 101.0
Exercice: Ecrire un programme qui demande 2 nombres entiers naturels (a et b) a l'utilisateur, puis affiche le
quotient entier de a/b et le reste de la division de alb, sous la forme a = qxb +r oli q est le quotient et rle reste
Entrée [20]:
1 asint(input(‘Le dividende: '))
2 beint(input(‘Le diviseur: '))
3. print(a,'=",a//b,'*" 4b, "+" ,a%b)
Le dividende: 72
Le diviseur: 25
72=2* 25+ 22
Partie Il: Les structures de données en Python
1- Les chaines de caractéres
Les chaines de caractéres peuvent étre exprimées de différentes maniéres. Elles peuvent étre écrites entre
guillemets simples (’..") ou entre guillemets ("...”) sans distinction. \ peut étre utilisé pour protéger un guillemets
Entrée [21]:
1 ‘Universite de Man‘ # simples quotes
out (21):
‘Universite de Man*
Entrée [22]
1 'L\'Universite de Man’ # utiliser \' pour proteger L'apostrophe...
out [22]:
“L'universite de Man"
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 15132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [23]:
1 “L'Universite de Man" # ...ou utiliser plutot Les doubles quotes
out[23]:
“L'universite de Man"
Entrée [24]:
1 "Yes", they said."
out[24]:
"Yes", they said.*
Entrée [25]:
1 "\"Yes\", they said."
out[25]:
"Yes", they said.*
Entrée [26]:
1 'Isn\'t", they said."
out [26]:
“'Isn\'t", they said.*
Entrée [27]:
1 print('"Isn\'t," they said.")
"Isn't," they said.
En mode interactif,'interpréteur affiche les chaines de caractéres entre guillemets. Les guillemets et autres
caractéres spéciaux sont protégés avec des barres obliques inverses (backslash en anglais). Bien que cela
uisse étre affiché différemment de ce qui a été entré (les guillemets peuvent changer), les deux formats sont
Equivalents. La chaine est affichée entre guillemets si elle contient un guillemet simple et aucun guillemet,
sinon elle est affichée entre guillemets simples. La fonction print() affiche les chaines de maniére plus lisible, en
retirant les guillemets ot en affichant les caractéres spéciaux qui étaient protégés par une barre oblique inverse
Entrée [20]:
1s = ‘Premiere ligne.\nSeconde ligne.‘ # \n signifie nouvelle Ligne
2s # Sans print(), \n est inclus Le message
out[20]:
‘Premiere ligne.\nSeconde ligne.’
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 16132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [21]:
1 print(s) # avec print(), \n produit une nouvelle Ligne
Premiere ligne.
Seconde ligne.
Si vous ne voulez pas que les caractéres précédés d'un \ soient interprétés comme étant spéciaux, u
chaines brutes (raw strings en anglais) en préfixant la chaine dun r:
Entrée [41]:
1 print('c:\some\nane') # ici \n signifie nouvelle Ligne!
€:\some
ame
Entrée [32]:
1 print(r'C:\some\name")
C:\some\name
Les chaines de caractéres peuvent s'étendre sur plusieurs lignes. Utilisez alors des triples guillemets, simples
ou doubles :"..." ou Les retours a la ligne sont automatiquement inclus, mais on peut 'empécher en
ajoutant \ a la fin de ta ligne.
Entrée [22]:
ls'' 'rfviggeer# friegfuief reigfiiefhie
efrigfgufe eurgffe erfgefier erhfuerfe fegriegfr
fweufiwfeyiwefi
wFeiige
hwfeogf!'*
print(1)
Naununs
rfviggeerf friegfuief reigfiiefhie
efrigfgufe eurgffe erfgefier erhfuerfe fegriegtr
fueufiwfeyinefi
wfeiige
hwFeogt
Les chaines peuvent étre concaténées (collées ensemble) avec opérateur + et répétées avec l'opérateur * :
Entrée [34]:
1 2*'pi's'toll
out[34]:
‘pipitolé’
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 11132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [35]:
1 10*'pi'+'piiiiii’
out[35]:
‘pipipipipipipipipipipiiiiii*
Entrée [36]:
1 prefixe='Py’
2. prefixe+' thon’
out[36]:
“python’
Les chatnes de caractéres peuvent étre indexées (j.e. on peut accéder aux caractéres par leur position), le
premier caractére d'une chaine étant a la position 0. II n'existe pas de type distinct pour les caractéres, un
caractére est simplement une chaine de longueur 1
Entrée [2]:
1 mot=" Python’
2 mot[@] # caractére a La position @
out [2]:
sp
Entrée [3]:
1 len(mot) # permet d'obtenir la taille de mot
out[3]:
6
Entrée [4]:
1 mot[3] # caractére a La position 5
out [4]:
the
Entrée [5]:
1 mot[S]
out[5]:
A
Les indices peuvent également étre négatifs, on compte alors en partant de la droite:
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
18132‘2406/2021 PYTHON 3 TC BGM2 2021 - Jupyter Notebook
Entrée [40]:
1 mot[-1] # dernier caractere
out[4e]:
Entrée [47]:
1 mot[-3] # avant dernier caractere
out [47]:
‘ht
Notez que, comme -0 égale 0, les indices négatifs commencent par -1
En plus d'acoéder a un élément par son indice, il est aussi possible de "trancher” (slice en anglais) une chatne.
Accéder a une chajine par un indice permet d'obtenir un caractere, trancher permet d'obtenir une sous-chaine :
Entrée [48]:
1 mot[@:4] # sous chaine allant de La position @ incluse a La position 2 exclue
out[4a]:
“pyth’
Entrée [45]:
1 mot[2:5] # sous chaine allant de La position 2 incluse a La position 5 exclue
out [45]:
“tho*
Les valeurs par défaut des indices de tranches ont une utilité ; le premier indice vaut zéro par défaut (i.
lorsqu'l est omis), le deuxiéme correspond par défaut a la taille de la chaine de caracteres :
Entrée [46]:
1 mot[:2] # sous chaine allant du debut a la position 2 exclue
out [46]:
py’
Entrée [19]:
1 mot[4:] # sous chaine allant de La position 4 incluse a la fin
out[19]:
‘on
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 19132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [22]:
1 mot[-2:] # sous chaine allant de L‘avant derniere position incluse a La fin
out [22]:
on
Utiliser un indice trop grand produit une erreur
Entrée [6]:
1 mot [6]
IndexError Traceback (most recent call last)
in
> 1 mot[6]
IndexError: string index out of range
Les chaines de caractéres, en Python, ne peuvent pas étre modifiées. On dit qu’elles sont immuables. Affecter
une nouvelle valeur a un indice dans une chaine produit une erreur
Entrée [51]:
1 mot[e.
oH
Typeerror Traceback (most recent call last)
in
> 1 mot[o]="H"
TypeError: ‘str’ object does not support item assignment
Si vous avez besoin d'une chaine différente, vous devez en créer une nouvelle :
Entrée [7]:
1 newMot="H' + mot[1:]
2. print(newMot)
Hython
Entrée [8]:
1 print (mot newNot)
Python Hython
La fonction native ten() renvoie la longueur d'une chaine
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 20132‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [9]:
1s = ‘il raconte n\"importe quoi’
2 len(s)
out[9]:
2s
2- Les listes
Python connait différents types de données combinés, utilisés pour regrouper plusieurs valeurs. La plus souple
esta liste, qui peut tre écrite comme une suite, placée entre crochets, de valeurs (éléments) séparés par des
virgules. Les éléments d'une liste ne sont pas obligatoirement tous du méme type, bien qu’a usage ce soit
souvent le cas.
Entrée [12]:
1 carres = [1, 4, 9, 16, 25]
2. carres
out[12]:
[1, 4, 9, 16, 25]
‘Comme les chaines de caractéres (et toute autre type de sequence), les listes peuvent étre indicées et
découpées :
Entrée [56]:
1 carres[4]
out [56]
25
Entrée [57]:
1 carres[-3]
out [57]:
9
Entrée [58]:
1 carres[:2]
out [58]:
[a, 4]
Toutes les opérations par tranches renvoient une nouvelle liste contenant les éléments demandés. Cela signifie
que lopération suivante renvoie une copie de la liste :
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 21132‘2406/2021 PYTHON 3 TC BGM2 2021 - Jupyter Notebook
Entrée [13]:
1 copieCarres=carres[:]
2 print(carres)
[, 4, 9, 16, 25]
Entrée [60]:
1 print(copiecarres)
[1, 4, 9, 16, 25]
Les listes gérent aussi les opérations comme les concaténations
Entrée [16]:
1 carresext=carres+[36, 49, 64, 81, 100]#Fxtension de La Liste carres
Entrée [17]:
1 carres
out [17]:
(1, 4, 9, 16, 25]
Entrée [18]:
1 carresext
out[18]:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Mais a la différence des chaines qui sont immuables, les listes sont muables : il est possible de modifier leur
contenu :
Entrée [28]:
1 cubes = [1, 8, 27, 65, 125] # il y a une erreur ici.
Entrée [58]:
1 483
out[58]:
64
Entrée [29]:
1 cubes[3]=64 # remplacer La mauvaise valeur
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn® 22182‘2406/2021 PYTHON 3 TC BGM? 2021 - Jupyter Notebook
Entrée [30]:
1 cubes
out [30]:
(1, 8, 27, 64, 125)
Des affectations de tranches sont également possibles, ce qui peut méme modifier la taille de la liste ou la vider
complétement
Entrée [22]:
1 lettres = ['a',
2 lettres
out[22]:
['a', ‘bY, 'e', ‘e')
Entrée [67]:
1 # remplacer certaines valeurs
2 lettres[2:5] = ['C', 'D', 'E']
3 lettres
out[67]:
[rat iby
Entrée [68]:
1 # maintenant il faut Les supprimer
2 lettres[2:5] = []
3 lettres
out[68]:
Tat, ‘bY, Fy g']
Entrée [32]:
1 # supprimer la Liste en remplacant tous ses elements par une Liste vide []
2 lettres[:
3 lettres
o
out[32]:
is
Il est possible d'imbriquer des listes (ie. créer des listes contenant d'autres listes). Par exemple :
localhost 8888 InotebooksiPYTHON 3 TC BGM2 2021.ipyn®
23132