====== Quelques notes sur le langage PYTHON ====== > Rédigé à partir de différentes sources : * Recherches en ligne, * Livres.. > Travaillé sous environnement Linux.\\ ===== ECRIRE UN PROGRAMME ===== ==== Avec le Shell (ou interpréteur) PYTHON ==== Pour entrer dans le "Shell Python", saisissez ''python'' ou bien ''python3'' dans le terminal (ou 3 est le numéro de version).\\ Pour sortir du "Shell Python", saisissez ''Quit()'' ou bien ''exit()'' dans le terminal. * Utile pour tester directement des lignes de codes. >>> A SAVOIR : si plusieurs version de Python sont installés, on peut choisir d'en utiliser une à l'aide de la commande : py -lenumérodeversion ==== Avec un éditeur de texte ==== //..choisir son éditeur de texte préféré..//\\ >> NOTE : UTF8 permet de s'assurer de pouvoir utiliser les caractères spéciaux (accents, cedille..). ==== Mon premier programme PYTHON ==== \\ Créer un nouveau fichier dans son éditeur de texte préféré.. #!/usr/bin/env python print("Bonjour, je suis un programme ecrit en Python.") ChampNom = input("Quel est votre prénom ? ") print("Salut, " + ChampNom + "!") > Ici, s'affiche ''"Salut //prénom// !"'' La dernière ligne de code précédente peut aussi s'écrire ; print("Salut, ", ChampNom, " !") >>> A SAVOIR : une autre manière d'afficher le contenu d'une variable ; print(f"Bien le bonjour {ChampNom} :) prêt à étudier le langage Python ??") >>> A SAVOIR : Entre les accolades peut figurer une variable ou une expression Enregistrer le fichier sous.. "MonProgramme.py"\\ Exécution du programme depuis la ligne de commande\\ * à l’emplacement du fichier..\\ * ou avec le chemin complet..\\ Pour exécuter le programme sous environnement Linux.\\ Il faut d’abord rendre le fichier exécutable en saisissant la ligne ci-dessous, dans le répertoire ou est stocké le fichier : chmod +x MonProgramme.py >> REMARQUE : - Pour exécuter le programme, si l’on n’est pas positionné dans le répertoire, il faut saisir intégralement le chemin..\\ - On peut aussi exécuter le programme avec la syntaxe : python3 MonProgramme.py ===== LA CASSE ===== \\ Dans Python, la casse est importante.\\ Ainsi : print(2+2) > affiche bien le résultat, soit 4, Print(2+2) > "print" avec "P" majuscule, génère une erreur. ===== NOTION D'OBJET ===== \\ :?:**..compréhension à revoir..**\\ Un objet est une information à traiter..\\ Un objet, est tout autre qui n'est pas un "mot clé", "une fonction", "une variable".\\ Pour manipuler un objet avec Python, on peut le stocker/mémoriser dans une variable. ===== LES VARIABLES ===== //SYNTAXES - Affectation d'une variable//\\ NomDeLaVariable = Valeur * Comparaison ou contrôle de contenu NomDeLaVariable == 'contenu' ==== Type de données ==== Il n'est pas nécessaire de définir le type d'une variable. Elle prend le type du contenu qu'on lui donne.\\ Assigner une valeur s'écrit : mois = 'Janvier’ Connaître le type d'une variable s'écrit : print(type(NomDeLaVariable)) Modifier le type d'une variable s'écrit : print LibelléDuType(NomDeLaVariable) Exemple : print int(s) * dans l'Exemple "s" étant une variable de type caractère, * avec "int" elle devient une variable de type numérique (integer). ==== Déclaration d'une liste (ou tableau) ==== //SYNTAXES d'une liste// NomListe = ['Valeur 1', 'Valeur 2', 'Valeur x', ...] Exemple :\\ * La liste des mois peut s'écrire : mois = [ 'Jan', 'Fev', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil', 'Aout', 'Sep', 'Oct', 'Nov', 'Dec' ] * Pour afficher "Mars", cela peut s'écrire : print mois[2] Exemple :\\ * Créé une liste à partir d'une chaine, peut s'écrire : list("Que donne cette ensemble de caractères dans une liste") * A pour effet de mettre chaque caractère et espace dans une "case".. \\ On peut remplacer l'élément d'une liste.\\ Exemple : mois[3] = "En avril fait ce qu'il te plaît" * Pour le vérifier, on peut afficher la liste, cela s'écrit : print(mois) \\ On peut afficher un ensemble d'éléments, en exprimant une plage (de x à y-1).\\ Exemple : print(mois[2:8]) * A pour effet d'afficher les éléments 2, 3, 4, 5, 6 et 7. \\ On peut afficher un ensemble d'éléments, tout ou partie d'une plage, dit le slicing.\\ Exemple 01 : print(mois[:2]) * A pour effet d'afficher les valeurs dans les index inférieur à 2. \\ Exemple 02 : print(mois[2:]) * A pour effet d'afficher les valeurs dans les index supérieur à 2. \\ On peut imbriquer plusieurs listes dans une variable liste.\\ Exemple 01 : MesListes = [Liste1, Liste2] * Les listes sont ici distinctes, il y a bien 2 listes. \\ Exemple 02 : MesListes = Liste1 + Liste2 * A pour effet de concaténer les listes, il n'y a plus qu'une seule liste. \\ On peut ajouter des éléments à une liste.\\ Exemple : mois.append("Bonne année !!!") \\ On peut supprimer un éléments d'une liste.\\ Exemple : del mois[6] \\ On peut supprimer le dernier élément ajouté.\\ Exemple : mois.pop() \\ //CURIOSITE//\\ Inverser les informations/les caractères.\\ Exemple : * Inverser les lettres d'une phrase, peut s'écrire : "Bonjour tout le monde"[::-1] ==== Déclaration d'un tuple ==== //SYNTAXES d'un tuple//\\ NomTuple = ('Valeur 1', 'Valeur 2', 'Valeur x', ...) Un tuple ou n-uplet est une liste non modifiable.\\ Exemple : * La liste des jours, peut s'écrire : ListeJours = (Lun, Ma, Me, Je, Ve, Sam, Dim) ==== Déclaration d'un dictionnaire ==== //SYNTAXES d'un dictionnaire// NomDictionnaire = {'Clé 1' : ('Valeur 1', 'Valeur 2', 'Valeur x'), 'Clé 2' : 'Valeur 1', 'Clé 3' : 'Valeur 1', ...} Un "dictionnaire" est : * Une "liste particulière", il est constitué d'ensemble de "clés" et "valeurs", il peut y avoir plusieurs valeurs elles sont alors mises entre parenthèses et séparées par des virgules, * Une collection non ordonnées.\\ Exemples : * Pour créer une liste des sports préférés de personnes/personnages : sports_favoris = { 'Frédéric Chopin' : ('Football', 'Ping-Pong'), 'Ludwig van Beethoven' : 'Basket-ball', 'Wolfgang Amadeus Mozart' : 'Base-ball', 'Antonio Vivaldi' : 'Volley ball', 'Jean-Sébastien Bach' : 'Badminton', 'Hector Berlioz' : 'Rugby' } * Pour afficher le sport favoris de Hector Berlioz : print(sports_favoris['Hector Berlioz']) * Pour supprimer une clé et sa/ses valeur(s) : del sports_favoris['Ludwig van Beethoven'] * Pour remplacer la ou les valeur(s) : sports_favoris['Frédéric Chopin'] = 'Hockey sur glace' * Pour ajouter "Footsal" à l'existant : sports_favoris['Frédéric Chopin'] = 'Hockey sur glace', 'Footsal' >>> VOIR FICHIER : 20231218_page46pkids-dict.py * Pour savoir si une clé existe, on peut écrire : "terme-recherché" in sports_favoris > Il est alors retourné la valeur TRUE ou FALSE. >>> A SAVOIR : Il ne doit pas y avoir de doublons de clé, soit de libellé identique. * Pour lister toutes les clés et les valeurs. On utilise la méthode "items".\\ Exemple : sports_favoris.items() > A pour effet d'afficher en une ligne (soit l'équivalent d'une "liste" de "tuples"), l'ensemble de clés/valeurs du dictionnaire. * Pour parcourir toutes les clés et valeurs, on peut l'écrire : for elements in sports_favoris.items(): print(elements) > Le résultat de l'affichage permet de voir que chaque ligne est un tuple, cela peut donc s'écrire aussi : for elements in sports_favoris.items(): print(type(elements)) Aussi, on peut énumérer les clés ou les valeurs à l'aide de l'indexation : * Soit pour les clés ; for elements in sports_favoris.items(): print(elements[0]) * Soit pour les valeurs ; for elements in sports_favoris.items(): print(elements[1]) Ou bien l'on peut, énumérer les clés et les valeurs à l'aide de variables, respectivement ici "personnage" et "sport", ce qui peut s'écrire ; for personnage, sport in sports_favoris.items(): print(personnage) for personnage, sport in sports_favoris.items(): print(sport) >>> A SAVOIR : Les éléments d'un dictionnaire ne sont pas ordonnés (classés par ordre alphabétique ou alphanumérique par Exemple) ainsi ils ne peuvent être lu/parcouru dans l'ordre alphabétique ou alphanumérique. ==== Imbriquer les listes, les tuples et les dictionnaires ==== //SYNTAXES//\\ UNE LISTE NomListe = ['Valeur 1', 'Valeur 2', 'Valeur x', ...] UN TUPLE NomTuple = ('Valeur 1', 'Valeur 2', 'Valeur x', ...) UN DICTIONNAIRE NomDictionnaire = {'Clé 1' : ('Valeur 1', 'Valeur 2', 'Valeur x'), 'Clé 2' : 'Valeur 1', 'Clé 3' : 'Valeur 1', ...} Un tuple dans une liste.\\ Exemple ; L = ['a', 'b', ('2', '4', '6')] Les listes et les tuples étant indexés, on peut interroger chaque éléments. Cela peut s'écrire :\\ ''L[0]'' affiche 'a',\\ ''L[1]'' affiche 'b',\\ ''L[2][0]'' affiche '2',\\ ''L[2][1]'' affiche '4',\\ ''L[2][2]'' affiche '6',\\ Exemple, pour illustrer : >>> VOIR FICHIER : < 20240225_elephorm_test-liste.py > ==== Substitution ==== \\ ''%s '' : pour substituer une variable de type caractère, soit "string",\\ ''%d '' : pour substituer une variable de type numérique, soit "integer".\\ Exemple : Mois = ['Jan','Fév','Mars','Avr','Mai','Juin','Juil','Août','Sept','Oct','Nov','Déc'] JoursDansMois = [31,28,31,30,31,30,31,31,30,31,30,31] for cmptr in range(0,12): print('%s a %d jours.' % (Mois[cmptr],JoursDansMois[cmptr])) Le résultat de ce code est : > Jan a 31 jours. > Fév a 28 jours. > Mars a 31 jours. > Avr a 30 jours. > Mai a 31 jours. > Juin a 30 jours. > Juil a 31 jours. > Août a 31 jours. > Sept a 30 jours. > Oct a 31 jours. > Nov a 30 jours. > Déc a 31 jours. ===== LES BOUCLES ===== \\ ..en construction.. ===== LES CARACTÈRES D’ÉCHAPPEMENTS ===== \\ Exemple : chaine = ’La syntaxe est importante en Python’ chaine = ”La syntaxe est importante en Python” > Produit le même résultat à l’affichage. Au sein d’une chaîne si l’on veut intégrer le guillemet simple ou le guillemet double, il faut entourer la chaîne du guillemet qui n’a pas besoin d’être affiché.\\ Exemple :\\ * Pour afficher le guillemet simple, on l'entoure du guillemet double. chaîne = ”Dis s’il te plaît” Mais pour afficher : Elle a dit ”Ne t’inquiète pas”\\ * Il faudra utiliser le caractère dit d’échappement, soit l’anti-slash ”\” chaîne = ’Elle a dit ”Ne t\'inquiète pas”’ >>> A SAVOIR : il existe d’autres caractères d’échappements utiles, par Exemple le retour à la ligne et aussi la tabulation. On peut aussi encadrer une chaîne de caractère avec trois guillemets simple, ce qui a pour effet de traiter tous ce qui est encadrés comme du "texte brut". ===== LES OPÉRATEURS ===== ^ Opérateur ^ Signe ^ | Égalité | == | | Supérieur à | > | | Supérieur ou égal à | >= | | Inférieur à | < | | Inférieur ou égal à | <= | | Différent de | != | ===== LES MODULES ===== Un module, contient un ensemble de fonctions. Ils correspondent en général à une thématique précise.\\ Ils peuvent être réutiliser, on dit "être appeler".\\ Exemples de modules : * "random", qui permet de générer des nombres aléatoirement. * "SQLite", pour le traitement de base de données. ==== Créer un module ==== C'est écrire un ensemble de fonctions. Enregistrées dans un fichier ".py". ==== Déclarer un module ==== \\ //SYNTAXES//\\ import NomDuFichierPython sans l'extension, à condition d'être dans le même répertoire que le fichier appelant.\\ Exemple à voir : * VM linux mint /home/temujin/Documents/exercices-python/20231111_FONCTIONtest04.py >> REMARQUE : l'usage de l'underscore dans le nom d'un fichier est déconseillé, cela peut faire bugger le code.. > Sinon il faudra éditer la variable d'environnement PYTHONPATH pour faire figurer un chemin dans lequel trouver les fichiers py créer pour être des modules. Soit saisir dans le shell linux : export PYTHONPATH=$PYTHONPATH: /chemin/vers/mes/modules Pour vérifier, saisir : echo $PYTHONPATH >> INTERROGATION : Comment lister les modules par défaut, fournis avec l'installation de python ??? > Pour avoir une idée des modules présent, lire sommaire < D:\hdd-hvm\Documents\Gestion personnel\Culture SIC\Dossiers PRO\FAE\DOCINFO\Coding\Programmation Python - Tarek Ziadé - Eyrolles (2ème Ed.) 2009.pdf > > Pour tâcher de mieux comprendre "les modules", lire (autour de la page 47..) < D:\hdd-hvm\Documents\Gestion personnel\Culture SIC\Dossiers PRO\FAE\DOCINFO\Coding\tuto python.pdf > ===== LES FONCTIONS ===== Dès lors que l'on a besoin du même ensemble de lignes de code, la fonction permet de le réutiliser sans avoir à le réécrire.\\ Elle s'utilise au sein d'un même fichier ".py". >> INTERROGATION : Peut-elle être appelée dans un autre fichier "py" ? Oui, avec le principe de "module", voir précédent. ==== Déclarer une fonction ==== //SYNTAXES//\\ NomDeLaFonction(Argument1,Argument2,..) Exemple à voir : * /home/temujin/Documents/exercices-python/20231111_FONCTIONtest03.py __EXERCICE SUR LES MODULES__\\ ../Culture%20personnel/Lecture/FullCircleMagazine/NS_PythonFullfr.pdf, PAGE 14,\\ Sur la base de ce qui a été vue précédemment,\\ **Objectif**\\ Création d'un programme qui affiche une liste d'achat, mise en forme.\\ Afficher : * Le coût de chaque objet, * Le total général, formaté en Euros et Centimes, Personnalisation : * La largeur du tableau doit pouvoir être modifiée, * Les valeurs à gauche et à droite doivent pouvoir être variables. Création de 3 fonctions : - Affichage des lignes du haut et du bas, > "HautOuBas", - Affichage du détails des objets et le total général, > "PartieCentrale" - Affichage de la ligne de séparation. > "LigneIntermediaire" Espaces de travail ; * Premier espace de travail (pour travailler avec les fonctions) : /home/temujin/Documents/exercices-python/ * Second espace de travail (pour appliquer la notion de module) : /home/temujin/Documents/exercices-python/liste-achats/ >> NOTE "HautOuBas" est un premier essai de compréhension, "LigneIntermediaire" est devenu utiles à point 1. et point 3.