Python
Un script Python se présente sous la forme d’un fichier contenant une ou plusieurs commandes qui seront exécutées de manière séquentielle. Il pourra donc permettre d’automatiser une série d’opérations.
Les différentes variables en Python
float=3.3
print type(float)
print float
int=3
print type(int)
print int
chaine="toto"
print type(chaine)
print chaine
liste=["a","1","b"]
print type(liste)
print liste[1]
tuple=("1","3","4") #liste où l'on ne peut pas modifier les éléments
print type(tuple)
print tuple[1]
dictionnaire={"prenom":"toto", "nom":"supernom"} #ensemble clé/valeur
print type(dictionnaire)
print dictionnaire["prenom"]
>>>>
<type 'float'="">
3.3
<type 'int'="">
3
<type 'str'="">
toto
<type 'list'="">
1
<type 'tuple'="">
3
<type 'dict'="">
toto
Comme ce sont des objets, il est possible de les manipuler, exemple avec une chaine :
chaine ="SALUT"
print chaine
chaine_petite=chaine.lower()
print chaine_petite
toto="salut"
print toto[0:3]
print toto[3:]
>>>
SALUT
salut
sal
ut
Tests et conditions en Python
Les opérateurs de test
Test sur les nombres
[ n1 == n2 ]
Vrai si n1 et n2 sont égaux.
[ n1!=n2 ]
Vrai si n1 et n2 sont différents.
[ n1 < n2 ]
Vrai si n1 est strictement inférieur à n2.
[ n1 <= n2 ]
Vrai si n1 est inférieur ou égal à n2.
[ n1 > n2 ]
Vrai si n1 est strictement supérieur à n2.
[ n1 >= n2 ]
Vrai si n1 est supérieur ou égal à n2.
Instruction If
L’instruction « if » permet d’effectuer des opérations si une condition est réalisée, elle possède 3 niveaux de complexité.
Niveau 1 :
if CONDITION: instruction(s)
Niveau 2 :
if CONDITION: instruction(s) else: instruction(s)
Niveau 3 :
if CONDITION1: instruction(s) elif CONDITION2: instruction(s) elif CONDITION3: instruction(s) ...
Pour les tests, possibilité d’utiliser les mots clés « and », « or » et « not ».
Exemple :
a=1
if a>=2 and a<=8: print("a n'est pas dans l'intervalle.") else: print("a est dans l'intervalle.") >>>a n'est pas dans l'intervalle.
majeur = False
if majeur is not True:
print("Vous n'êtes pas encore majeur.")
>>>Vous n'êtes pas encore majeur.
La boucle For
La boucle « for » s’articule autour de ce schéma :
for VAR in sequence: instruction(s)
Exemple :
ma_liste = ['a', 'b', 'c', 'd', 'e']
for i in ma_liste:
print i
Résultat :
a b c d e
La boucle While
La boucle « while » s’articule autour de ce schéma :
while CONDITION:
instruction(s)
CONDITION est une condition de continuation de la boucle et tant que cette condition est vraie, la boucle continue.
Généralement, il faut définir les variables de CONDITION avant le while, sinon la condition n’est pas vérifiable (vu qu’elle n’est pas définie).
Exemple :
i=0
b=1
while i < 10: print "b =",b i += 1 b *= i >>>b = 1
b = 1
b = 2
b = 6
b = 24
b = 120
b = 720
b = 5040
b = 40320
b = 362880
Les instructions « break » et « continue »
L’instruction « break » permet de casser une boucle :
for i in range(10):
print "debut", i
if i == 2:
break
print "fin", i
print "fin de boucle car i =", i
Résultat:
debut 0 fin 0 debut 1 fin 1 debut 2 fin de boucle car i = 2
L’instruction « continue » permet de passer prématurément au tour suivant d’une boucle :
for i in range(4):
print "debut", i
if i == 2:
continue
print "fin", i
print "fin de boucle"
Résultat:
debut 0 fin 0 debut 1 fin 1 debut 2 debut 3 fin 3 fin de boucle
Les regex
Les basiques
Les équivalences
Les filtrages
La syntaxe pour effectuer un filtrage est la suivante :
nouvelle_squence = [element_a_afficher for element in ancienne_squence if condition]
Exemple :
inventaire = [
("pommes", 22),
("melons", 4),
("poires", 18),
("fraises", 76),
("prunes", 51),
]
inventaire_inverse = [(qtt, nom_fruit) for nom_fruit,qtt in inventaire]
inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in sorted(inventaire_inverse, reverse=True)]
print inventaire
>>>>
[('fraises', 76),
('prunes', 51),
('pommes', 22),
('poires', 18),
('melons', 4)]
Manipuler les fichiers
Pour manipuler un fichier il faut l’ouvrir avec la fonction Open qui prend en argument le chemin vers le fichier (relatif ou absolu) puis le mode d’ouverture :
r : ouverture en lecture (Read)
w : ouverture en écriture (Write). Le contenu du fichier est écrasé. Si le fichier n’existe pas, il est créé
a : ouverture en écriture en mode ajout (Append). On écrit à la fin du fichier sans écraser l’ancien contenu du fichier. Si le fichier n’existe pas, il est créé
Exemple :
fichier=open("fichiertest", "r")
contenu=fichier.read()
print contenu
fichier.close()
>>>>
contenu de mon fichier test
Les fonctions utiles
Join
La fonction join prend en paramètre un séparateur et une liste ; elle renvoie une chaîne de caractères comportant les éléments de la liste, concaténés et séparés par le séparateur.
chaine = « séparateur ».join(liste)
ma_liste = ['Bonjour', 'a', 'tous']
ma_chaine = " ".join(ma_liste)
Split
La fonction split prend en paramètres un séparateur et une chaîne de caractères ; elle renvoie la liste des éléments de la chaîne de caractères délimités par le séparateur.
liste = split(/séparateur/, chaîne );
ma_chaine = "Bonjour a tous"
ma_list = ma_chaine.split(" ")
Les classes et objets
Une classe est un « modèle » et un objet est une instance d’une classe.
Exemple avec la création de véhicule :
class vehicule:
compteur = 0
def __init__(self, nom, roues): ; # ne pas oublier "self" au début (convention de nommage)
self.nom = nom
self.roues = roues
vehicule.compteur += 1
print "Vehicules crees : ",vehicule.compteur
moto=vehicule("moto", 2)
print moto.nom
print moto.roues
camion=vehicule("camion", 8)
print camion.nom
print camion.roues
>>>>
Vehicules crees : 1
moto
2
Vehicules crees : 2
camion
8
Exemple avec des methodes, un tableau où l’on peut écrire dessus, le lire et l’effacer :
class TableauNoir:
def __init__(self):
self.surface = ""
def ecrire(self, message_a_ecrire):
if self.surface != "":
self.surface += "\n"
self.surface += message_a_ecrire
def lire(self):
print(self.surface)
def effacer(self):
self.surface = ""
>>> tab = TableauNoir()
>>> tab.lire()
>>> tab.ecrire("Salut")
>>> tab.ecrire("Petit test")
>>> tab.lire()
Salut
Petit test
>>> tab.effacer()
>>> tab.lire()
>>>