====== 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.