SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
Présentation python
Présentation pythonPrésentation python
Présentation pythonSarah
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
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
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
Les bases de l'HTML / CSS
Les bases de l'HTML / CSSLes bases de l'HTML / CSS
Les bases de l'HTML / CSSSamuel Robert
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdfssuserc46a93
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Cours python
Cours pythonCours python
Cours pythonsalmazen
 

Tendances (20)

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
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
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
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Les bases de l'HTML / CSS
Les bases de l'HTML / CSSLes bases de l'HTML / CSS
Les bases de l'HTML / CSS
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
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é : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours python
Cours pythonCours python
Cours python
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 
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
 
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
 

Similaire à 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
 
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
 
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
 

Plus 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
 

Plus 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