Download as pdf
Download as pdf
You are on page 1of 32
‘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® 3182 2aiosi2021 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

You might also like