SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Life is short, use Python …

INTRODUCTION à python
Par: Achraf KACIMI EL HASSANI
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:




Déclaration d’un dictionnaire initialisé:




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

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



Dict={}

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

Más contenido relacionado

La actualidad más candente

Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeWajihBaghdadi1
 
Calcul scientifique avec python Numpy
Calcul scientifique avec python NumpyCalcul scientifique avec python Numpy
Calcul scientifique avec python NumpyHaytam EL YOUSSFI
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Cours développement côté serveur
Cours développement côté serveurCours développement côté serveur
Cours développement côté serveurHouda TOUKABRI
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.pptIdriss22
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac Amri Ossama
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 

La actualidad más candente (20)

Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Formation python
Formation pythonFormation python
Formation python
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
Python avancé : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrige
 
Calcul scientifique avec python Numpy
Calcul scientifique avec python NumpyCalcul scientifique avec python Numpy
Calcul scientifique avec python Numpy
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Cours développement côté serveur
Cours développement côté serveurCours développement côté serveur
Cours développement côté serveur
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.ppt
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 

Destacado

Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Ronan Amicel
 
Accessibilite ERP - points importants
Accessibilite ERP - points importantsAccessibilite ERP - points importants
Accessibilite ERP - points importantsCorentin Le Faucheur
 
Guide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restauration
Guide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restaurationGuide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restauration
Guide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restaurationkolbjm
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Enrichir son programme d'immersion avec la technologie 2013
Enrichir son programme d'immersion avec la technologie 2013 Enrichir son programme d'immersion avec la technologie 2013
Enrichir son programme d'immersion avec la technologie 2013 MmeNero
 
Activité 14, corrigé
Activité 14, corrigéActivité 14, corrigé
Activité 14, corrigédeliafrantz
 
07 les-communications-au-boulot
07 les-communications-au-boulot07 les-communications-au-boulot
07 les-communications-au-boulotDominique Pongi
 
Ismael Rabadán. 3º A
Ismael Rabadán. 3º AIsmael Rabadán. 3º A
Ismael Rabadán. 3º Aanaisruiz
 
2007 Collaboration dans les soins palliatifs
2007 Collaboration dans les soins palliatifs2007 Collaboration dans les soins palliatifs
2007 Collaboration dans les soins palliatifsAPRHOC
 
L’Europe face au défi des stupéfiants
L’Europe face au défi des stupéfiantsL’Europe face au défi des stupéfiants
L’Europe face au défi des stupéfiantsDaniel Dufourt
 
10 les-meilleurs-effets-optiques4
10 les-meilleurs-effets-optiques410 les-meilleurs-effets-optiques4
10 les-meilleurs-effets-optiques4Dominique Pongi
 

Destacado (20)

python
pythonpython
python
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !
 
Accessibilite ERP - points importants
Accessibilite ERP - points importantsAccessibilite ERP - points importants
Accessibilite ERP - points importants
 
Guide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restauration
Guide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restaurationGuide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restauration
Guide de l'accessibilité pour les ERP exerçant dans l'hôtellerie-restauration
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Accessibilite 2013
Accessibilite 2013Accessibilite 2013
Accessibilite 2013
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 
Normes handicapés
Normes handicapés Normes handicapés
Normes handicapés
 
Immersion Liban
Immersion LibanImmersion Liban
Immersion Liban
 
Enrichir son programme d'immersion avec la technologie 2013
Enrichir son programme d'immersion avec la technologie 2013 Enrichir son programme d'immersion avec la technologie 2013
Enrichir son programme d'immersion avec la technologie 2013
 
Activité 14, corrigé
Activité 14, corrigéActivité 14, corrigé
Activité 14, corrigé
 
07 les-communications-au-boulot
07 les-communications-au-boulot07 les-communications-au-boulot
07 les-communications-au-boulot
 
Ismael Rabadán. 3º A
Ismael Rabadán. 3º AIsmael Rabadán. 3º A
Ismael Rabadán. 3º A
 
Présentation fedarena
Présentation fedarenaPrésentation fedarena
Présentation fedarena
 
Présentation fedarena
Présentation fedarenaPrésentation fedarena
Présentation fedarena
 
2007 Collaboration dans les soins palliatifs
2007 Collaboration dans les soins palliatifs2007 Collaboration dans les soins palliatifs
2007 Collaboration dans les soins palliatifs
 
L’Europe face au défi des stupéfiants
L’Europe face au défi des stupéfiantsL’Europe face au défi des stupéfiants
L’Europe face au défi des stupéfiants
 
10 les-meilleurs-effets-optiques4
10 les-meilleurs-effets-optiques410 les-meilleurs-effets-optiques4
10 les-meilleurs-effets-optiques4
 
Informe Caso Olapic
Informe Caso OlapicInforme Caso Olapic
Informe Caso Olapic
 
Vraies fausses pubs51
Vraies fausses pubs51Vraies fausses pubs51
Vraies fausses pubs51
 

Similar a Atelier Python 2eme partie par Achraf Kacimi El Hassani

Programmation en VBA Introduction au language Visual Basic for Applications ...
Programmation en VBA  Introduction au language Visual Basic for Applications ...Programmation en VBA  Introduction au language Visual Basic for Applications ...
Programmation en VBA Introduction au language Visual Basic for Applications ...Bassim ELKHATTABY
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaAziz Darouichi
 
Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)salmazen
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHPAbdoulaye Dieng
 
Java 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambdaJava 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambdaCh'ti JUG
 
Bases de php - Partie 4
Bases de php - Partie 4Bases de php - Partie 4
Bases de php - Partie 4Régis Lutter
 
5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdfAliouDiallo24
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 

Similar a Atelier Python 2eme partie par Achraf Kacimi El Hassani (20)

Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
Programmation en VBA Introduction au language Visual Basic for Applications ...
Programmation en VBA  Introduction au language Visual Basic for Applications ...Programmation en VBA  Introduction au language Visual Basic for Applications ...
Programmation en VBA Introduction au language Visual Basic for Applications ...
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
 
Theme 7
Theme 7Theme 7
Theme 7
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
 
POO-chapitre6.pptx
POO-chapitre6.pptxPOO-chapitre6.pptx
POO-chapitre6.pptx
 
Ns python 2
Ns python 2Ns python 2
Ns python 2
 
Java 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambdaJava 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambda
 
Bases de php - Partie 4
Bases de php - Partie 4Bases de php - Partie 4
Bases de php - Partie 4
 
5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf
 
Php1
Php1Php1
Php1
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
 
Structures donneenew
Structures donneenewStructures donneenew
Structures donneenew
 
Java collection
Java collection Java collection
Java collection
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
 

Más de Shellmates

Cryptography basics
Cryptography basicsCryptography basics
Cryptography basicsShellmates
 
Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15
Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15
Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15Shellmates
 
JavaScript 1.0 by Zakaria Smahi
JavaScript 1.0 by Zakaria SmahiJavaScript 1.0 by Zakaria Smahi
JavaScript 1.0 by Zakaria SmahiShellmates
 
BSides Algiers - Stuxnet - Sofiane Talmat
BSides Algiers - Stuxnet - Sofiane TalmatBSides Algiers - Stuxnet - Sofiane Talmat
BSides Algiers - Stuxnet - Sofiane TalmatShellmates
 
BSides Algiers - Linux Kernel and Recent Security Protections - Djallal Harouni
BSides Algiers - Linux Kernel and Recent Security Protections - Djallal HarouniBSides Algiers - Linux Kernel and Recent Security Protections - Djallal Harouni
BSides Algiers - Linux Kernel and Recent Security Protections - Djallal HarouniShellmates
 
BSides Algiers - Layer7 DoS Attacks - Oussama Elhamer
BSides Algiers - Layer7 DoS Attacks - Oussama ElhamerBSides Algiers - Layer7 DoS Attacks - Oussama Elhamer
BSides Algiers - Layer7 DoS Attacks - Oussama ElhamerShellmates
 
BSides Algiers - Reversing Win32 applications - Yacine Hebbal
BSides Algiers - Reversing Win32 applications - Yacine HebbalBSides Algiers - Reversing Win32 applications - Yacine Hebbal
BSides Algiers - Reversing Win32 applications - Yacine HebbalShellmates
 
BSides Algiers - Nmap Scripting Engine - Hani Benhabiles
BSides Algiers - Nmap Scripting Engine - Hani BenhabilesBSides Algiers - Nmap Scripting Engine - Hani Benhabiles
BSides Algiers - Nmap Scripting Engine - Hani BenhabilesShellmates
 
BSides Algiers - Normes ISO 2700x - Badis Remli
BSides Algiers - Normes ISO 2700x - Badis RemliBSides Algiers - Normes ISO 2700x - Badis Remli
BSides Algiers - Normes ISO 2700x - Badis RemliShellmates
 
BSides Algiers - Metasploit framework - Oussama Elhamer
BSides Algiers - Metasploit framework - Oussama ElhamerBSides Algiers - Metasploit framework - Oussama Elhamer
BSides Algiers - Metasploit framework - Oussama ElhamerShellmates
 
BSides Algiers - PHP Static Code Analysis - Abdeldjalil Belakhdar
BSides Algiers - PHP Static Code Analysis - Abdeldjalil BelakhdarBSides Algiers - PHP Static Code Analysis - Abdeldjalil Belakhdar
BSides Algiers - PHP Static Code Analysis - Abdeldjalil BelakhdarShellmates
 
BSides Algiers - Certification Electronique - Lilia Ounini
BSides Algiers - Certification Electronique - Lilia OuniniBSides Algiers - Certification Electronique - Lilia Ounini
BSides Algiers - Certification Electronique - Lilia OuniniShellmates
 
BSides algiers - Malware History - Sofiane Talmat
BSides algiers -  Malware History - Sofiane TalmatBSides algiers -  Malware History - Sofiane Talmat
BSides algiers - Malware History - Sofiane TalmatShellmates
 

Más de Shellmates (14)

Cryptography basics
Cryptography basicsCryptography basics
Cryptography basics
 
HTML basics
HTML basics HTML basics
HTML basics
 
Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15
Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15
Malware Analysis par Mohamed Ali FATHI - BSides Algiers 2k15
 
JavaScript 1.0 by Zakaria Smahi
JavaScript 1.0 by Zakaria SmahiJavaScript 1.0 by Zakaria Smahi
JavaScript 1.0 by Zakaria Smahi
 
BSides Algiers - Stuxnet - Sofiane Talmat
BSides Algiers - Stuxnet - Sofiane TalmatBSides Algiers - Stuxnet - Sofiane Talmat
BSides Algiers - Stuxnet - Sofiane Talmat
 
BSides Algiers - Linux Kernel and Recent Security Protections - Djallal Harouni
BSides Algiers - Linux Kernel and Recent Security Protections - Djallal HarouniBSides Algiers - Linux Kernel and Recent Security Protections - Djallal Harouni
BSides Algiers - Linux Kernel and Recent Security Protections - Djallal Harouni
 
BSides Algiers - Layer7 DoS Attacks - Oussama Elhamer
BSides Algiers - Layer7 DoS Attacks - Oussama ElhamerBSides Algiers - Layer7 DoS Attacks - Oussama Elhamer
BSides Algiers - Layer7 DoS Attacks - Oussama Elhamer
 
BSides Algiers - Reversing Win32 applications - Yacine Hebbal
BSides Algiers - Reversing Win32 applications - Yacine HebbalBSides Algiers - Reversing Win32 applications - Yacine Hebbal
BSides Algiers - Reversing Win32 applications - Yacine Hebbal
 
BSides Algiers - Nmap Scripting Engine - Hani Benhabiles
BSides Algiers - Nmap Scripting Engine - Hani BenhabilesBSides Algiers - Nmap Scripting Engine - Hani Benhabiles
BSides Algiers - Nmap Scripting Engine - Hani Benhabiles
 
BSides Algiers - Normes ISO 2700x - Badis Remli
BSides Algiers - Normes ISO 2700x - Badis RemliBSides Algiers - Normes ISO 2700x - Badis Remli
BSides Algiers - Normes ISO 2700x - Badis Remli
 
BSides Algiers - Metasploit framework - Oussama Elhamer
BSides Algiers - Metasploit framework - Oussama ElhamerBSides Algiers - Metasploit framework - Oussama Elhamer
BSides Algiers - Metasploit framework - Oussama Elhamer
 
BSides Algiers - PHP Static Code Analysis - Abdeldjalil Belakhdar
BSides Algiers - PHP Static Code Analysis - Abdeldjalil BelakhdarBSides Algiers - PHP Static Code Analysis - Abdeldjalil Belakhdar
BSides Algiers - PHP Static Code Analysis - Abdeldjalil Belakhdar
 
BSides Algiers - Certification Electronique - Lilia Ounini
BSides Algiers - Certification Electronique - Lilia OuniniBSides Algiers - Certification Electronique - Lilia Ounini
BSides Algiers - Certification Electronique - Lilia Ounini
 
BSides algiers - Malware History - Sofiane Talmat
BSides algiers -  Malware History - Sofiane TalmatBSides algiers -  Malware History - Sofiane Talmat
BSides algiers - Malware History - Sofiane Talmat
 

Atelier Python 2eme partie par Achraf Kacimi El Hassani

  • 1. Life is short, use Python … INTRODUCTION à python Par: Achraf KACIMI EL HASSANI
  • 2. Les piles et files en utilisant les Lists
  • 3. 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()
  • 4. 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()
  • 6. 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
  • 7. À 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)
  • 8. Listes et tuples  Passage d’un tuple à une liste:  L=list(myTuple)  Passage d’un tuple à une liste:  myTuple=tuple(list)
  • 10. 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={}
  • 11. 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)
  • 13. 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:   Déclaration d’un dictionnaire initialisé:   Dict={key1: value1, key2: value2 ….} Accès à la valeur value associée à la clé key;   Dict={} Dict[key] Ajout d’un élément new Key , newVal:  Dict[newKey]=newVal
  • 14. 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
  • 16. 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
  • 17. 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.
  • 18. 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.
  • 19. 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.
  • 20. 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
  • 21. QUESTIONS ? Merci pour votre présence