21
INTRODUCTION à python Par: Achraf KACIMI EL HASSANI Life is short, use Python …

Atelier Python 2eme partie par Achraf Kacimi El Hassani

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Atelier Python 2eme partie par Achraf Kacimi El Hassani

INTRODUCTION à python

Par: Achraf KACIMI EL HASSANI

Life is short, use Python …

Page 2: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Les piles et files en utilisant les Lists

Page 3: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Les piles

Principe du LIFO: Last In First Out

Créer la pile (liste) :

pile=[]

Pour empiler les éléments:

pile.append(element)

Pour dépiler un élément:

element=pile.pop()

Page 4: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Les files

Principe du FIFO: First In First Out

Créer la file (liste) :

file=[]

Pour enfiler un éléments

file.append(element)

Pour défiler un élément:

element=pile.popleft()

Page 5: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Structure de données: Tuple

Page 6: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Tuple ?

Même principe que les n-uplets en mathématiques.

Même déclaration que les listes, mais avec parenthèses

Exemple:

tuple=(2, 3)

Même méthodes d’accès que les listes ( par index )

Sont immuables !

N’ont pas de méthodes

Page 7: Atelier Python 2eme partie par Achraf Kacimi El Hassani

À quoi bon ?!

Ils sont plus rapides que les listes.

Peuvent servir comme clés des dictionnaires

Sont sémantiquement hétérogènes

Exemple:

marque_page = (42, 11) # numéro de page, numéro de ligne

Sont utilisées pour formater les strings (lui préférer la méthode format):

S= “Salut %s agé de %d” % (nom, age)

Page 8: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Listes et tuples

Passage d’un tuple à une liste:

L=list(myTuple)

Passage d’un tuple à une liste:

myTuple=tuple(list)

Page 9: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Structure de données: Set

Page 10: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Set ?

Ensemble au sens mathématique: collection d’objets sans doublons

Ne sont pas ordonnés et donc pas d’accès par index

On peut ittérer les élements : for x in set

Existe en version immuable frozenset

Déclaration d’un set vide: set={}

Page 11: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Quelques méthodes des Set

len(set) : retourne le cardinal du set

x in set retourne True si x ∈ set, False sinon

set.isdisjoint(set2) retourne True si l’intersection de set et set2 est vide

set.issubset(set2) (ou set <= set2) retourne True si set ⊂ set2

set.union(set2) (ou set | set2) : retourne set ∪ set2

set.intersection(set2) (ou set & set2) : retourne set ∩ set2

set. difference(set2) ( ou set – set2)

set. symmetric_difference(set2) (ou set ^ set2)

Page 12: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Les dictionnaires

Page 13: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Dictionnaire ?

Tableaux associatifs: l’accès se fait par clés

Ensemble de couples (key, value)

La clé doit être de type immuable (str, tuple, frozenset)

Création d’un dictionnaire vide:

Dict={}

Déclaration d’un dictionnaire initialisé:

Dict={key1: value1, key2: value2 ….}

Accès à la valeur value associée à la clé key;

Dict[key]

Ajout d’un élément new Key , newVal:

Dict[newKey]=newVal

Page 14: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Dictionnaire

del(dict[key]): Suppression d’un élément de clé key:

dict.values(): retourne la liste des valeurs du dictionnaire

dict.keys(): retourne la liste des clés du dictionnaire

dict.clear(): supprime tous les éléments du dictionnaire.

dict.items(): retourne les élements du dictionnaire (tuples (clé, valeur))

dict.has_key(key): retourne True si la clé key appartient au dict

len(dict): retourne le nombre d’éléments du dictionnaire

Page 15: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Les fonctions

Page 16: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Fonctions

Déclaration en utilisant le mot clé def suivi du nom de la fonction, suivi des paramètres entre parenthèses.

On peut éventuellement retourner une valeur en utilisant le mot clé return

La première chaine de caractères dite de documentation est ignorée à l’exécution, elle décrit la fonction.

Exemple:

def factoriel(n):

" calcule et retourne n! "

facto=1

for i in xrange(2, n+1): #pour i allant de 2 à n

facto*=i #facto=facto * i

return facto

Page 17: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Fonctions: les paramètres

Les paramètres passent par référence, c’est-à-dire que les changement

opérés sur ces derniers dans le corps de la fonction sont maintenus.

Pour faire un passage par valeur, il faut changer la référence du

paramètre dans le corps de la fonction.

On peut faire passer une fonction comme paramètre.

Page 18: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Fonctions: les paramètres par défaut

Python supporte les valeurs par défaut des paramètres des fonctions, càd

les valeurs que prennent ces valeurs si on ne les spécifie pas à l’appel.

Exemple:

def test(a, b=0):

print a,b

test(2,3) # affiche 2, 3

test (2) # affiche 2, 0

Toute modification sur ces paramètres est gardée pour les prochains

appels.

Page 19: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Generators

Sont des fonctions qui renvoient des Iterators

Un itterator est un est un objet qui contient la méthode next()

On peut parcourir ses élements avec la boucle for.

Un generator est une fonction où on utilise le mot clé yield au lieu de return.

Le yield a un fonctionnement similaire au return, sauf qu’il mémorise l’état de la fonction.

Au prochain appel de la fonction, elle continuera son execution du dernier point de sauvegarde du yield.

Page 20: Atelier Python 2eme partie par Achraf Kacimi El Hassani

Fonction Lambda

Fonction anonyme ( sans nom), qui se limite à une seule expression.

Evite de définir une fonction qui n’est utilisé qu’une fois dans le code.

Souvent passée en paramètre d’une fonction (sort, map …).

Synthaxe:

lambda paramètre1,….,paramètreN : <expression à retourner>

Exemple:

Lambda x, y: True if x % y == 0 else False

Page 21: Atelier Python 2eme partie par Achraf Kacimi El Hassani

QUESTIONS ?

Merci pour votre présence