Python M1 - Part 1 PDF
Python M1 - Part 1 PDF
Python M1 - Part 1 PDF
N. TSOPZE
Intro. (historique)
Mode interactif
Instructions sont directement interprétées et les résultats
affichés
réaliser des prototypes,
extension .py.
Structures de base
Commentaires
Commence par #
Variables
Objets dont les classes sont définies par l’usager, ou
par l’environnement Python (types de base).
manipulation les données au travers de références
(qui donnent accès aux fonctionnalités des instances).
typage dynamique
>>> x = 1 # x reference un entier
>>> x = ’toto’ # x reference desormais une chaine
>>> x = Foo() # x reference desormais une instance de Foo
Instructions de base
Affectation: =
X=2
a,b=b,a #Permuter a et b
Affichage: print
print(a)
print(‘’ la valeur de a est :’’ a)
Saisie: input # la valeur saisie est prise comme
une chaine de caractères
a=input()
a = input (" Entrer la valeur de a: ")
a=int(a) ##conversion
Opérations
Opérations arithmétiques
Addition :
Addition : +
Soustraction : -
Multiplication :
Multiplication : *
Division : / (réelle); // (entière)
Modulo : %
Forme contractée: +=, -=, *=, /=
Affichage : print # Tenir compte des descripteurs
Exemple
>>> x = 2
>>> x = x + 1
>>> x += 2
Chaines de caractères
Constante chaine de caractères sont placées entre les
guillemets (simple ou double)
Opérations:
Concaténation : +
Affichage : print
Accès aux éléments: ch[ i ], # i<0 pour commencer à la fin
Sous chaines : ch[deb:fin]
Exemples
>>>x = ’hello ’
>>> y = "world! ’’
>>> z=x+y
>>>x[2:4]
Variables
donnée du programme, stockée dans
l’ordinateur.
code alpha-numérique lié à une donnée de votre
programme, permettant de l'utiliser à plusieurs
reprises et faire des calculs un peu plus
intéressants avec.
Permet de stocker le résultat
mémoire : « grosse armoire » avec plein de
tiroirs.
Chaque tiroir peut contenir une donnée ; certaines de ces
données seront des variables de votre programme.
Listes
ensemble ordonné et dynamique d’éléments pouvant
être de différents types
Création de listes vides avec les deux manières
possibles: [ ] ou list()
>>> l1 = []
>>> l2 = list()
Exemple.
>>> x = True
>>> foo = [’bar’, 12345, x]
>>> foo
[’bar’, 12345, True]
Listes
Accès aux éléments :
Préciser l’index entre crochets
méthodes
append (val): ajout de val en fin de liste,
Insert(ind,val) : pour ajouter val à un index donné ind.
extend (l1): ajoute le contenu de la liste l1 passé en
paramètre à la fin de la liste.
index (val): index de la première occurrence d’un
élément dans une liste // exception ValueError en
absence.
in : True si l’élément est présent dans la liste et False
sinon.
Listes
remove permet de supprimer la première occurrence
d’un élément d’une liste en le désignant
del (delete) détruire une référence à un objet Python,
ou à une partie d’une liste.
>>> del foo[1:3]
+ : concaténation
Multiplication par un entier n : crée n copies de la liste
Listes
>>> foo.append(’new’)
>>> foo
[’bar’, 12345, 1, ’new’]
>>> foo.insert(2, ’new’)
>>> foo
[’bar’, 12345, ’new’, 1, ’new’]
>>> foo.extend([67, 89])
>>>foo.index(’new’)
>>>foo.index(34)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ValueError: list.index(x): x not in list
>>> 34 in foo
False
Tableau (array)
Package array
Création
Import array
var=array.array(type, liste d’éléments)
a = arr.array('d', [1.1, 3.5, 4.5])
Accès aux éléments:
var[i]; ## avec i commençant à 0
var[n1:n2] #éléments de n1 à n2
var[:-n] #éléments de 0 à n
var[n:] #éléments de n à la fin
var[:] # du début à la fin
Ajout d’éléments
var.append(x) #ajout de x à la fin
var.extend([liste de valeurs] # ajout de la liste de valeurs à la fin
var.insert(i,x) ## insèrer x à la position i
Tableau (array)
Concaténer : +
var1+var2
Suppression d’éléments: remove
var.remove(x) # supprimer x
del var[i] # supprime l’élément N° i
Taille d’un élément : var. itemsize
nombre d'occurrences de x dans le tableau: var.count(x)
index de la première occurrence de x : var.index(x)
inverse l'ordre des éléments: var.reverse()
Tableau (array)
Code d'indication du Taille minimum en
Type C Type Python
type octets
tableaux associatifs,
ensembles non ordonnés d’éléments indexés
par des clés.
Une clé doit obligatoirement être immuable (chaîne,
entier ou tuple).
une clé est toujours unique.
Déclaration
deux accolades : {} ; {cle: 1, 23: ‘ABS’}
utilisant le type dict : dict (cle=valeur, cle=valeur)
ajout + accès aux éléments par indexation sur la
clé associé à l’élément.
Dictionnaires
Méthodes
Keys () : liste de toutes les clés du dictionnaire
has_key () : True si la clé donné en paramètre est
présente dans le dictionnaire et False sinon.
opérateur in : vérifier l’appartenance
Values () : liste des valeurs contenues dans le
dictionnaire
Items() : liste de tuples : (clé, valeur)
opérateur del : supprimer une association du
dictionnaire
Construction
<en-tete>:
<instructions>
<en-tete>: <instruction> ## Bloc sur une seule ligne
Construction - Conditions booléennes
tout ce qui n’est pas faux est vrai.
Les données «vide» sont évaluées à FAUX :
False, None, 0, “ ", [], list(), {}, dict(), (), tuple()
opérateurs de comparaison
<, <=, >, >=, !=, ==, is
opérateurs booléens :
and, or, not
Exemple
>>> l1 = [1, 2, 3]
>>> l2 = [1, 2, 3]
>>> l1 == l2
True
>>> l1 is l2
False
Construction - If
Syntaxe
for <var> in <sequence>:
<instructions>
[else:
<instructions, séquence épuisée sans break> ]
// […] indique l’aspect optionnel
exemple
X=0
For i in range(10,20):
x=x+i
Boucle pour
Séquences
range()
range(n): entiers de 0 à n
range(n1,n2) : entiers de n1 à n2
range(n1,n2,p) : entiers de n1 à n2 avec pour pas
p.
Liste de valeurs
liste=(4,1, 0, 5, -1)
Chaine de caractères
Décomposition caractère par caractère
Boucle pour
Opérateurs de comparaison
Égalité: ==
Différence: !=
Inégalité: <; <=; >; >=
Est (ou n’est pas): is (is not)
Opérateurs logiques
ET : and
Ou: or
Négation : not
Conditions (exemple)
def nom_fonction(paramètres) :
instructions
[ return liste des résultats]
Ou
f=lambda par1, par2,…parn : instruction de retour
Exemple : f = lambda x: x * x
Fonction
a, b = 0, 1
while b < n:
print (b)
a, b = b, a + b
Fonction (commentaire - docstring)
Description affichée lorsque l’utilisateur veut
l’aide sur la fonction à travers la commande
help(nom_fonction)
se fait sur la première ligne après la déclaration
en utilisant des chaînes de caractères multi-
lignes, en utilisant des guillemets doubles
>>> def exemple():
"""Commentaires…
…
commentaires."""
pass
Fonction (paramètres)
Filtre
filter applique la fonction passée en premier argument
sur chacun des éléments de la séquence passée en
second argument et retourne une nouvelle liste qui
contient tous les éléments de la séquence pour
lesquels la fonction a retourné une valeur vrai
Syntaxe
filter(fonction,liste)
Exemple
>>> def impair(x):
return x % 2
>>> list(filter(impair, range(20)))
Fonction (portée des variables)
variables globales – cas des objets mutables
Possibilité de les modifier dans une fonction
Exemple
def mafonction():
liste[1] = -127
liste = [1,2,3]
mafonction()
liste
[1, -127, 3]
Modules
def carre(valeur,n):
resultat = valeur**n
return resultat
def cube(valeur):
resultat = valeur**3
return resultat
Modules (importation)
par « _ »
from calcul import *
importe le module
Module sys
paramètres et fonctions liées à l’environnement
d’exécution
Constantes
argv :paramètres passé sur la ligne de commande
argv[0] : nom du script.
stdin, stdout, stderr : Objets de type file (fichier) représentant les
entrées et sorties standard.
path : Séquence contenant les chemins de la variable
d’environnement PYTHONPATH.
Fonctions
exit([arg]) : fin à l’exécution d’un programme avec pour satut de
sortie arg
Modules (standard)
Module string
traitement des chaines de caractère
Constantes
string.ascii_letters : ensembles des lettres
string.ascii_lowercase : lettres minuscules
string.ascii_uppercase : lettres majuscules
string.digits : chaîne '0123456789'.
string.hexdigits : chaîne '0123456789abcdefABCDEF'.
string.octdigits: chaîne '01234567.
string.punctuation : caractères ASCII de ponctuation
string.printable: Chaîne de caractères ASCII affichables.
string.whitespace : chaîne comprenant tous les caractères ASCII
considérés comme espaces.
Modules (standard)
Module string
Conversion en majuscules : txt.upper()
Conversion en minuscules : txt.lower()
Découpage avec un séparateur : txt.split(car)
Remplacement de caractère:
txt.replace(‘’old", ’’ new")
Recherche de caractères : txt.find(‘car’)
‘car’ peut être une chaine
Modules (standard)
Module os
Manipulation des fonctions du système
Quelques fonctions
os.getcwd() : nom du répertoire courant
os.chdir(chemin):changer de repertoire courant
os.system(cmd) : exécution de la commande « cmd »
os.walk(chemin)
os.path.exists(chemin): existence du fichier
os.path.isdir(’rep’) : existence du répertoire « rep »
os.path.isfile(’chemin’): si chemin est un fichier
python3 -m pip install
Packages
Regroupement de plusieurs modules
Accès en fournissant un chemin vers le module
Installation de nouveaux packages, en ligne de
commande dos
Python –m pip install nomPackage
En pratique, ce sont des répertoires où peuvent se
trouver d'autres répertoires (d'autres packages) ou des
fichiers (des modules).
Importer des packages
import nom_du_package
import nom_du_package.nom_du_package
import nom_du_package as alias
Exceptions
try :
# Bloc de test
except type_de_l_exception
Pour une division:
NameError : l'une des variables numerateur ou denominateur
n'existe pas
TypeError : l'une des variables numerateur ou denominateur ne peut
diviser ou être divisée
ZeroDivisionError : Si denominateur vaut 0, cette exception sera
levée.
L’instruction « pass » dans un « except » indique de ne rien faire en
cas d'erreur
Exceptions (else)
Répertoire de travail
>>> import os
os.chdir("C:/dossier") où “dossier” existe sur le disque C
Connaitre le répertoire de travail
os.getcwd()
Ouverture du fichier
Fonction: open(‘’chemin du fichier’’, ‘’mode’’)
>>> mon_fichier = open("fichier.txt", "r") ## objet de classe TextIoWrapper
>>> mon_fichier
Mode
'r': lecture (Read).
'w': écriture (Write). Écrase si existe, crée sinon.
'a': ajout (Append).
‘b’ : pour une ouverture en mode binaire.
t, pour une ouverture en mode texte.
x, crée un nouveau fichier et l'ouvre pour écriture
manipulation de fichiers
Fermeture du fichier
Méthode close()
>>>Mon_fichier.close()
Lecture
Méthode: read()
>>> contenu = mon_fichier.read()
>>> print(contenu)
Ecriture
Méthode: write
Ne prend en paramètre que des chaines de caractères
>>>mon_fichier = open("fichier.txt", "w") # effacement du contenu!
>>> mon_fichier.write(« Hello World")
>>> mon_fichier.close()
manipulation de fichiers
class nomDeLaClasse :
…
def __init__ ( self ):
…
def methode1 (self, parametre1,parametre2,…)
…
def methode2 (self, parametre1,parametre2,…)
….
Utilisation
nomDeLaClasse.methode1(parametre1, parametre2,…)
Classe (méthode de la classe)
class A:
""" Classe A, classe parente"""
pass # laisser la définition vide ,
class B(A):
""" Classe B, classe fille qui hérite de A.
"""
pass
Classe (héritage)
class AgentSpecial ( Personne ):
""" Classe définissant un agent
spécial . Elle hérite de la classe Personne
class Personne : """
""" Classe repr é sentant une def __init__ (self , nom , matricule
personne """ ):
def __init__ (self , nom ): """ Un agent se dé finit par son
""" Constructeur de notre classe """ nom et son matricule """
self . nom = nom self . nom = nom
self . prenom = " Martin " self . matricule = matricule
def __str__ ( self ): def __str__ ( self ):
""" Mé thode appel ée lors d'une """ Méthode appelée lors d'une
conversion de l'objet en cha îne "" conversion de l'objet en chaîne """
return "{0} {1}". format ( self .prenom return " Agent {0}, matricule {1}".
, self . nom) format ( self .nom , self.
matricule )
Classe (méthode)
se servir de la notation
MaClasse.ma_methode(mon_objet) pour appeler une
méthode précise d'une classe précise
Exemple Personne . __init__ (self , nom) peut être
appelé dans def __init__ (self , nom , matricule ):
issubclass (B,A) : True si B est une sous classe de A et
False sinon
isinstance(obj, A) : True si obj est un objet de la classe A
Héritage multiple: class ClasseFille ( parent1, parent2 ):
Expressions régulières