Atelier Python 2eme partie par Achraf Kacimi El Hassani

Post on 25-Jan-2015

397 views 9 download

description

 

Transcript of Atelier Python 2eme partie par Achraf Kacimi El Hassani

INTRODUCTION à python

Par: Achraf KACIMI EL HASSANI

Life is short, use Python …

Les piles et files en utilisant les Lists

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()

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()

Structure de données: Tuple

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

À 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)

Listes et tuples

Passage d’un tuple à une liste:

L=list(myTuple)

Passage d’un tuple à une liste:

myTuple=tuple(list)

Structure de données: Set

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={}

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)

Les dictionnaires

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

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

Les fonctions

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

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.

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.

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.

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

QUESTIONS ?

Merci pour votre présence