SlideShare a Scribd company logo
1 of 39
Download to read offline
Life is short, use Python …

INTRODUCTION à python
Par: Achraf KACIMI EL HASSANI
Python ?


Langage de programmation multi-paradigme
 Impératif (Procédural)
 Orienté objet








Multiplateformes
Interprété
Typage dynamique
Gestion automatique de la mémoire (ramasse -miettes)
Open Source
conçu pour produire du code de qualité, portable et facile à intégrer
Pourquoi apprendre Python?








Très simple à apprendre
Code moins volumineux
Multi-plateformes
Très fun à utiliser
Très documenté
Grande communauté
Peut être utilisé un peu partout (Administration système, applications
bureau, web, jeux vidéo…)
Un peu d’Histoire




Crée par Guido van Rossum durant une semaine de vacances
Tire son nom de la série Monty Python
Principalement inspiré du:
langage ABC pour l’indentation
 Modula-3 pour la gestion des exceptions
 C pour les outils UNIX




Licence GPL depuis la version 1.6 (2000)
Installer Python


Sous linux:
 Déjà installé
 Utiliser n’importe quel éditeur de texte
 Executer en utilisant la commande python <nom_du_fichier>



Sous Windows:
 http://www.python.org/getit/

 Il installera aussi l’IDE IDLE qui permet d’utiliser le shell python et d’écrire et

executer votre code.
Syntaxe de base
Opérateurs


Un commentaire commence par le caractère # et s’étend jusqu’ à la fin de
la ligne
 Exemple:



Opérateurs logiques:






#Ceci est un commentaire

and
or
not

Opérateurs de comparaison: >, >=, ==,<=, <, !=
Opérateurs


Opérations mathématiques:
7+3 #10
 7-3 #4
 7*3 #21
 7**3 #343 (puissance)
 7/3 #2 (division entière)
 7 % 3 #2 (modulo)
 7.2 // 3 #2 (division entière forcée)

Les types




Pas de déclaration explicite du type d’une variable
Le type d’une variable est celui de la valeur qu’on lui attribue
Il peut changer pendant le programme
Exemple:
s= " Hello " #s est de type String
a=2 #a est de type int
s=a+2
#s est maintenant de type int



La fonction type(s) retourne le type de la variable s.
Les types


Les types entiers:
 Peuvent être d’une taille quelconque (limité par la RAM)



Les types flottants (réels)
 Notés avec un point décimal (7.2)
 ou notation exponnentielle (6.023e23)



Les types booléens qui prennent deux valeurs
 True
 False
Les types


Les nombres complexes:
 Les complexes sont écrits en notation cartésienne de la forme A+Bj avec A et

B des flottants
 Quelques fonctions:
 1j

# 1j
# (6-4j)

 (2+3j) + (4-7j)
 (9+5j).real

# 9.0

 (9+5j).imag

# 5.0
# 5.0 : module
# retourne le conjugué: 3-4j

 abs(3+4j)
 (3+4j).conjugate
Opérations d’affectation







a = 4 # Affectation
a += 2
# idem à : a = a + 2 si a est déjà référencé
c=d=8
# cibles multiples (affectation de droite `a gauche)
e, f = 2, 5
# affectation de tuple (par position)
e, f = f, e
# permutation entre e et f
g, h = *’G’, ’H’+ # affectation de liste (par position)
Entrées clavier: input()




L’instruction input() permet saisir une entrée au clavier.
Elle effectue un typage dynamique (détecte le type de la valeur entrée)
Accepte une syntaxe input(message) exemple:
 n = input("Entrez un entier : ")



Attention:
 Elle attend en réalité une instruction Python

 N’existe plus à partir de Python 3.0
 Lui préférer la fonction raw_input()
Entrées clavier: raw_input()





Même chose que input(), sauf qu’elle lit une chaine de caractère
Pour lire une variable d’un autre type, il faut faire un retypage (cast)
Les casts sont de la forme : nouveau_type(variable)
Exemple:
 age =int( raw_input(" Veuillez donner votre age ") )



Attention:
Elle a été renommée input à partir de Python 3.0
Sortie écran (print)




L’instruction print permet d’afficher la valeur d’une variable à l’écran
Elle fait un saut de ligne après l’affichage de la valeur
Exemple:
Nom="Snake"
print "Salut"
print Nom

Resultat:
Salut
Snake


print




Pour l’empêcher de sauter de ligne il faut rajouter une virgule à la fin
(elle écrira un espace au lieu d’un saut de ligne)
Exemple:
Nom=" Achraf "
print " Salut ",
print Nom

Resultat:
Salut Achraf


print dans Python 3.x
 print est devenue une fonction à partir de Python 3.0
 La synthaxe devient donc print(valeur)
 Pour ne pas faire de retour à la ligne on rajoute un paramètre

end=" "
 Exemple 2 en Python 3.x:
Nom=" Achraf "
print (" Salut ",end = "
print (Nom)

" )
Notion de bloc d’instructions:







D’autres langages délimitent un bloc par les symboles , - ou BEGIN,
END
Python utilise l’indentation
 bloc d'instructions est une suite d'instructions qui est alignée sur la
Un
même tabulation.
Les blocs sont utilisés pour définir les corps des fonctions, des boucles,
des classes ...
Structures de contrôle
Notion de bloc d’instructions:






L’indentation dépend des caractères réellement écrits et non pas de
l’espace qu’ils ont généré
Il ne faut JAMAIS mélanger les tabulations et les espaces au risque
d’avoir l’erreur suivante:
IndentationError: unindent does not match any outer indentation level
La convention est d’utiliser 4 espaces par niveau au lieu d’une tablulation
Les conditions:

Synthaxe:
if condition 1:
BLOC 1
elif condition 2: #Equivalent à else if
BLOC 2
else:
BLOC 3
Les conditions
Exemple:
If

n > 0:

print n, " est strictement positif "
elif n<0:
print n, " est strictement négatif "
else:
print n, " est nul "
Les boucles


La boucle while

while condition:
BLOC D’INSTRUCTIONS

Exemple:
i=0
while i<5:
i=i+1
print i,
La boucle for


la boucle for est équivalente à un for each des autres langages
for iterating_var in sequence:
BLOC D’INSTRUCTIONS

Source du WorkFlow: http://www.tutorialspoint.com
Boucle for


Pour faire un for classique, il faut utiliser la fonction range ( dont on
donne les détails plus tard)

for i in range(n) :

#Equivalent à  for (i=0; i<n; i++ )

BLOC D’INSTRUCTIONS


Autres forme de la fonction range:


for i in range(k,n):
#Equivalent à for (i=k; i<n ; i++ ) en C



for i in range(k, n, p):
#Equivalent à for (i=k; i<n ; i+=p ) en C
les instructions break, continue


L'instruction break permet d'arrêter une boucle avant sa fin.

while condition:
if condition2:
break

#si condition2 vérifiée on
#passe à instruction1
BLOC D’INSTRUCTIONS
instruction 1


L'instruction continue est similaire, mais au lieu d'interrompre la boucle,
on saute à la prochaine itération de la boucle.
Structures de données
Les chaines de caractère (str)











Similaire aux chaines de caractères des autres langage (liste de caractères)
Accès aux caractères par index, ie: pour une chaine s, s[i] retourne le ième
caractère
Sont immuables (on ne peut changer leurs valeurs), il est donc interdit d’écrire
par exemple s[0]='a'
Les constantes sont écrites entre "", ou entre ' '
On peut écrire des " " dans les chaines délimitées par ' ' et des ' dans les
chaines délimitées par " ""
Exemple:
S= " Je m’appelle Onizuka "
 S= ' le mot " Oni " signifie démon en japonais '

Opérations sur les str





Concaténation " Hello" + " World" # " Hello World "
"Hello " .3
#’Hello Hello Hello ‘
Supposons que S soit une str de longueur n
Accès aux élements:






Le premier caractère est S[0] et le dernier S[n-1]
S[i] retourne le ième élement de S
S[-i] retourne le ième élement de S en partant de la fin. (à la position n-i)

Sous chaines:






La fonction len(S) retourne la taille de S.
S[i:j] donne la sous-chaine composée des caractères aux positions i, i+1, …, j-1
S[:j] donne la sous-chaine composée des caractères aux positions 0, 1, …, j-1
S[j:] donne la sous-chaine composée des caractères aux positions j, j+1, …, n-1
Opérations sur les str







s.isalnum() # retourne vrai si tous les caractères sont alphanumériques
s.isalpha() # retourne vrai si tous les caractères sont alphabétiques
s.isdigit() # retourne vrai si tous les caractères sont des chiffres
s.replace(old, new) # retourne une chaine où toutes les occurrences de
#old dans s sont remplacées par new
s.index(c) #retourne la position de c dans s, -1 s’il n’y existe pas
Formater une str (format)






Pour formater une str on utilise sa fonction format
La chaine en question doit contenir des {}
Les ,- seront remplacés dans l’ordre par les paramètres de la fonction
format
Exemple:
a=4
b=2
print " {} + {} = {} " .format(a, b, a+b) # 4+ 2= 6
Les listes


Ce sont des tableaux hétérogènes de taille variable
 Accès par position
 Les objets de la liste peuvent être de types différents
 La taille de la liste change à chaque suppression ou insertion





Ils ne sont pas immuables contrairement aux str, on peut faire :
l[0]=val
On peut créer des matrices sous forme de liste de listes
 Exemple: M=[[1, 2, 3], [4, 5, 6]]
Opérations sur les listes













Créer une liste (vide) : l=[]
L3= l1+ l2 #Concaténer deux listes
l.append(v) : Insère un élément v à la fin de l
l.insert(i, v): Insère un élement v à la position i de l
l.pop() retourne la valeur du dernier élément et le supprime de la liste (on le
dépile)
l.pop(i) retourne la valeur du ième élément et le supprime de la liste
l.remove(v): supprime la première occurrence de v dans l
l.count(v): retourne le nombre d’occurrence de v dans l
l.expend(l2): insère tous les élements de l2 à la fin de l1 (concaténation)
Opérations sur les listes










l.sort(): Trie une liste (si les objets ne sont pas des types standards il faut
rajouter une fonction qu’on verra plus tard)
l.reverse(): retourne une liste dont les éléments sont ceux de l mais
d’ordre inversé
len(l): retourne la taille de l.
l[i:j] donne la sous-liste composée des valeurs aux positions i, i+1, …, j-1
l[:j] donne la sous-liste composée des valeurs aux positions 0, 1, …, j-1
l[j:] donne la sous-liste composée des valeurs aux positions j, j+1, …, n-1
List comprehension
Les list comprehensions sont des expressions qui permettent de générer
des listes d’une manière très compacte
 Forme générale:
[ expression for expr in sequence1
for expr2 in sequence2 ...
for exprN in sequenceN
if condition ]

List comprehension


Exemples:
 l=[i**2 for i in range(10)]
 M=[[1, 7, 2], [8, 4, 3], [1, 9, 6]]

P=[[ row[j] % 2 for j in range(len(M[0])] for row in M ]


T=[[row[i] for row in M] for i in range(len(M[0]))]
Exercice


Faire un programme Permettant de faire le chiffrement (déchiffrement)
en ROT13 en utilisant les structures précedemment vues et sans utiliser
le modulo.
QUESTIONS ?
Merci pour votre présence

More Related Content

What's hot

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
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
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Présentation python
Présentation pythonPrésentation python
Présentation pythonSarah
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Les algorithmes d'arithmetique
Les algorithmes d'arithmetiqueLes algorithmes d'arithmetique
Les algorithmes d'arithmetiquemohamed_SAYARI
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfRedaBelattar
 
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
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en cbenouini rachid
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeWajihBaghdadi1
 

What's hot (20)

COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
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
 
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
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Python
PythonPython
Python
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Les algorithmes d'arithmetique
Les algorithmes d'arithmetiqueLes algorithmes d'arithmetique
Les algorithmes d'arithmetique
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).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
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en c
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrige
 

Viewers also liked

Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sqlbchesneau
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Pythonyboussard
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 
Enjeux & perspectives des métiers informatiques
Enjeux & perspectives des métiers informatiquesEnjeux & perspectives des métiers informatiques
Enjeux & perspectives des métiers informatiquesAndre CIPRIANI
 
Présentation de Zenika - Jan 2010
Présentation de Zenika - Jan 2010Présentation de Zenika - Jan 2010
Présentation de Zenika - Jan 2010Stefane Fermigier
 
Integrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise SystemsIntegrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise Systemsmoorejon
 
Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...
Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...
Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...Dominique_Z
 
Gartner eBook on Big Data
Gartner eBook on Big DataGartner eBook on Big Data
Gartner eBook on Big DataJyrki Määttä
 
RN 2008 Moodle Société GRICS
RN 2008 Moodle Société GRICSRN 2008 Moodle Société GRICS
RN 2008 Moodle Société GRICSGeoffroi Garon
 
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybridesGUSS
 
Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...
Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...
Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...FactoVia
 
[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu
[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu
[Slideshare] ChallengeMyWebsite sur Slack- Compte renduLa-Fabrique-du-Net
 
Asset Backed v Asset Based Sukuk
Asset Backed v Asset Based Sukuk Asset Backed v Asset Based Sukuk
Asset Backed v Asset Based Sukuk Camille Silla Paldi
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfwebreaker
 
Code Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonCode Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonbbourgois
 
1.Presentation De Moodle
1.Presentation De Moodle1.Presentation De Moodle
1.Presentation De MoodlePiero_1983
 

Viewers also liked (20)

Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Formation python
Formation pythonFormation python
Formation python
 
Enjeux & perspectives des métiers informatiques
Enjeux & perspectives des métiers informatiquesEnjeux & perspectives des métiers informatiques
Enjeux & perspectives des métiers informatiques
 
Présentation de Zenika - Jan 2010
Présentation de Zenika - Jan 2010Présentation de Zenika - Jan 2010
Présentation de Zenika - Jan 2010
 
Integrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise SystemsIntegrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise Systems
 
Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...
Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...
Moodle intégré à l 'ENT: une expérimentation dans 31 établissements de l'acad...
 
Gartner eBook on Big Data
Gartner eBook on Big DataGartner eBook on Big Data
Gartner eBook on Big Data
 
RN 2008 Moodle Société GRICS
RN 2008 Moodle Société GRICSRN 2008 Moodle Société GRICS
RN 2008 Moodle Société GRICS
 
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides
 
Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...
Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...
Slides deck yos-tour_vincentthavonekham_mvp_azure_the_future_of_microsoft_dat...
 
Modes of Issuing Sukuk
Modes of Issuing Sukuk Modes of Issuing Sukuk
Modes of Issuing Sukuk
 
Python
Python Python
Python
 
[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu
[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu
[Slideshare] ChallengeMyWebsite sur Slack- Compte rendu
 
Asset Backed v Asset Based Sukuk
Asset Backed v Asset Based Sukuk Asset Backed v Asset Based Sukuk
Asset Backed v Asset Based Sukuk
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Code Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonCode Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec python
 
1.Presentation De Moodle
1.Presentation De Moodle1.Presentation De Moodle
1.Presentation De Moodle
 

Similar to Introduction à Python - Achraf Kacimi El Hassani

Formation en Python_Niveau1_2023.pptx
Formation en Python_Niveau1_2023.pptxFormation en Python_Niveau1_2023.pptx
Formation en Python_Niveau1_2023.pptxbetalab
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptxMohammedErritali2
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdfMARYAM510573
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDidier Plaindoux
 
ch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdfch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdfFadouaBouafifSamoud
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
Cours c#
Cours c#Cours c#
Cours c#zan
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationkamalomari2
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.netZakaria SMAHI
 

Similar to Introduction à Python - Achraf Kacimi El Hassani (20)

Formation en Python_Niveau1_2023.pptx
Formation en Python_Niveau1_2023.pptxFormation en Python_Niveau1_2023.pptx
Formation en Python_Niveau1_2023.pptx
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptx
 
Formation python
Formation pythonFormation python
Formation python
 
TP5_2020.pdf
TP5_2020.pdfTP5_2020.pdf
TP5_2020.pdf
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
langage C++
langage C++langage C++
langage C++
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
Initiation r
Initiation rInitiation r
Initiation r
 
Theme 7
Theme 7Theme 7
Theme 7
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
ch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdfch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdf
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Le langage C
Le langage CLe langage C
Le langage C
 
Cours c#
Cours c#Cours c#
Cours c#
 
Language-C.ppt
Language-C.pptLanguage-C.ppt
Language-C.ppt
 
Langage C
Langage CLangage C
Langage C
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.net
 

More from 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
 

More from 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
 

Introduction à Python - Achraf Kacimi El Hassani

  • 1. Life is short, use Python … INTRODUCTION à python Par: Achraf KACIMI EL HASSANI
  • 2. Python ?  Langage de programmation multi-paradigme  Impératif (Procédural)  Orienté objet       Multiplateformes Interprété Typage dynamique Gestion automatique de la mémoire (ramasse -miettes) Open Source conçu pour produire du code de qualité, portable et facile à intégrer
  • 3. Pourquoi apprendre Python?        Très simple à apprendre Code moins volumineux Multi-plateformes Très fun à utiliser Très documenté Grande communauté Peut être utilisé un peu partout (Administration système, applications bureau, web, jeux vidéo…)
  • 4.
  • 5. Un peu d’Histoire    Crée par Guido van Rossum durant une semaine de vacances Tire son nom de la série Monty Python Principalement inspiré du: langage ABC pour l’indentation  Modula-3 pour la gestion des exceptions  C pour les outils UNIX   Licence GPL depuis la version 1.6 (2000)
  • 6. Installer Python  Sous linux:  Déjà installé  Utiliser n’importe quel éditeur de texte  Executer en utilisant la commande python <nom_du_fichier>  Sous Windows:  http://www.python.org/getit/  Il installera aussi l’IDE IDLE qui permet d’utiliser le shell python et d’écrire et executer votre code.
  • 8. Opérateurs  Un commentaire commence par le caractère # et s’étend jusqu’ à la fin de la ligne  Exemple:  Opérateurs logiques:     #Ceci est un commentaire and or not Opérateurs de comparaison: >, >=, ==,<=, <, !=
  • 9. Opérateurs  Opérations mathématiques: 7+3 #10  7-3 #4  7*3 #21  7**3 #343 (puissance)  7/3 #2 (division entière)  7 % 3 #2 (modulo)  7.2 // 3 #2 (division entière forcée) 
  • 10. Les types    Pas de déclaration explicite du type d’une variable Le type d’une variable est celui de la valeur qu’on lui attribue Il peut changer pendant le programme Exemple: s= " Hello " #s est de type String a=2 #a est de type int s=a+2 #s est maintenant de type int  La fonction type(s) retourne le type de la variable s.
  • 11. Les types  Les types entiers:  Peuvent être d’une taille quelconque (limité par la RAM)  Les types flottants (réels)  Notés avec un point décimal (7.2)  ou notation exponnentielle (6.023e23)  Les types booléens qui prennent deux valeurs  True  False
  • 12. Les types  Les nombres complexes:  Les complexes sont écrits en notation cartésienne de la forme A+Bj avec A et B des flottants  Quelques fonctions:  1j # 1j # (6-4j)  (2+3j) + (4-7j)  (9+5j).real # 9.0  (9+5j).imag # 5.0 # 5.0 : module # retourne le conjugué: 3-4j  abs(3+4j)  (3+4j).conjugate
  • 13. Opérations d’affectation       a = 4 # Affectation a += 2 # idem à : a = a + 2 si a est déjà référencé c=d=8 # cibles multiples (affectation de droite `a gauche) e, f = 2, 5 # affectation de tuple (par position) e, f = f, e # permutation entre e et f g, h = *’G’, ’H’+ # affectation de liste (par position)
  • 14. Entrées clavier: input()    L’instruction input() permet saisir une entrée au clavier. Elle effectue un typage dynamique (détecte le type de la valeur entrée) Accepte une syntaxe input(message) exemple:  n = input("Entrez un entier : ")  Attention:  Elle attend en réalité une instruction Python  N’existe plus à partir de Python 3.0  Lui préférer la fonction raw_input()
  • 15. Entrées clavier: raw_input()     Même chose que input(), sauf qu’elle lit une chaine de caractère Pour lire une variable d’un autre type, il faut faire un retypage (cast) Les casts sont de la forme : nouveau_type(variable) Exemple:  age =int( raw_input(" Veuillez donner votre age ") )  Attention: Elle a été renommée input à partir de Python 3.0
  • 16. Sortie écran (print)    L’instruction print permet d’afficher la valeur d’une variable à l’écran Elle fait un saut de ligne après l’affichage de la valeur Exemple: Nom="Snake" print "Salut" print Nom Resultat: Salut Snake 
  • 17. print   Pour l’empêcher de sauter de ligne il faut rajouter une virgule à la fin (elle écrira un espace au lieu d’un saut de ligne) Exemple: Nom=" Achraf " print " Salut ", print Nom Resultat: Salut Achraf 
  • 18. print dans Python 3.x  print est devenue une fonction à partir de Python 3.0  La synthaxe devient donc print(valeur)  Pour ne pas faire de retour à la ligne on rajoute un paramètre end=" "  Exemple 2 en Python 3.x: Nom=" Achraf " print (" Salut ",end = " print (Nom) " )
  • 19. Notion de bloc d’instructions:     D’autres langages délimitent un bloc par les symboles , - ou BEGIN, END Python utilise l’indentation  bloc d'instructions est une suite d'instructions qui est alignée sur la Un même tabulation. Les blocs sont utilisés pour définir les corps des fonctions, des boucles, des classes ...
  • 21. Notion de bloc d’instructions:    L’indentation dépend des caractères réellement écrits et non pas de l’espace qu’ils ont généré Il ne faut JAMAIS mélanger les tabulations et les espaces au risque d’avoir l’erreur suivante: IndentationError: unindent does not match any outer indentation level La convention est d’utiliser 4 espaces par niveau au lieu d’une tablulation
  • 22. Les conditions:  Synthaxe: if condition 1: BLOC 1 elif condition 2: #Equivalent à else if BLOC 2 else: BLOC 3
  • 23. Les conditions Exemple: If n > 0: print n, " est strictement positif " elif n<0: print n, " est strictement négatif " else: print n, " est nul "
  • 24. Les boucles  La boucle while while condition: BLOC D’INSTRUCTIONS Exemple: i=0 while i<5: i=i+1 print i,
  • 25. La boucle for  la boucle for est équivalente à un for each des autres langages for iterating_var in sequence: BLOC D’INSTRUCTIONS Source du WorkFlow: http://www.tutorialspoint.com
  • 26. Boucle for  Pour faire un for classique, il faut utiliser la fonction range ( dont on donne les détails plus tard) for i in range(n) : #Equivalent à  for (i=0; i<n; i++ ) BLOC D’INSTRUCTIONS  Autres forme de la fonction range:  for i in range(k,n): #Equivalent à for (i=k; i<n ; i++ ) en C  for i in range(k, n, p): #Equivalent à for (i=k; i<n ; i+=p ) en C
  • 27. les instructions break, continue  L'instruction break permet d'arrêter une boucle avant sa fin. while condition: if condition2: break #si condition2 vérifiée on #passe à instruction1 BLOC D’INSTRUCTIONS instruction 1  L'instruction continue est similaire, mais au lieu d'interrompre la boucle, on saute à la prochaine itération de la boucle.
  • 29. Les chaines de caractère (str)       Similaire aux chaines de caractères des autres langage (liste de caractères) Accès aux caractères par index, ie: pour une chaine s, s[i] retourne le ième caractère Sont immuables (on ne peut changer leurs valeurs), il est donc interdit d’écrire par exemple s[0]='a' Les constantes sont écrites entre "", ou entre ' ' On peut écrire des " " dans les chaines délimitées par ' ' et des ' dans les chaines délimitées par " "" Exemple: S= " Je m’appelle Onizuka "  S= ' le mot " Oni " signifie démon en japonais ' 
  • 30. Opérations sur les str     Concaténation " Hello" + " World" # " Hello World " "Hello " .3 #’Hello Hello Hello ‘ Supposons que S soit une str de longueur n Accès aux élements:     Le premier caractère est S[0] et le dernier S[n-1] S[i] retourne le ième élement de S S[-i] retourne le ième élement de S en partant de la fin. (à la position n-i) Sous chaines:     La fonction len(S) retourne la taille de S. S[i:j] donne la sous-chaine composée des caractères aux positions i, i+1, …, j-1 S[:j] donne la sous-chaine composée des caractères aux positions 0, 1, …, j-1 S[j:] donne la sous-chaine composée des caractères aux positions j, j+1, …, n-1
  • 31. Opérations sur les str      s.isalnum() # retourne vrai si tous les caractères sont alphanumériques s.isalpha() # retourne vrai si tous les caractères sont alphabétiques s.isdigit() # retourne vrai si tous les caractères sont des chiffres s.replace(old, new) # retourne une chaine où toutes les occurrences de #old dans s sont remplacées par new s.index(c) #retourne la position de c dans s, -1 s’il n’y existe pas
  • 32. Formater une str (format)     Pour formater une str on utilise sa fonction format La chaine en question doit contenir des {} Les ,- seront remplacés dans l’ordre par les paramètres de la fonction format Exemple: a=4 b=2 print " {} + {} = {} " .format(a, b, a+b) # 4+ 2= 6
  • 33. Les listes  Ce sont des tableaux hétérogènes de taille variable  Accès par position  Les objets de la liste peuvent être de types différents  La taille de la liste change à chaque suppression ou insertion   Ils ne sont pas immuables contrairement aux str, on peut faire : l[0]=val On peut créer des matrices sous forme de liste de listes  Exemple: M=[[1, 2, 3], [4, 5, 6]]
  • 34. Opérations sur les listes          Créer une liste (vide) : l=[] L3= l1+ l2 #Concaténer deux listes l.append(v) : Insère un élément v à la fin de l l.insert(i, v): Insère un élement v à la position i de l l.pop() retourne la valeur du dernier élément et le supprime de la liste (on le dépile) l.pop(i) retourne la valeur du ième élément et le supprime de la liste l.remove(v): supprime la première occurrence de v dans l l.count(v): retourne le nombre d’occurrence de v dans l l.expend(l2): insère tous les élements de l2 à la fin de l1 (concaténation)
  • 35. Opérations sur les listes       l.sort(): Trie une liste (si les objets ne sont pas des types standards il faut rajouter une fonction qu’on verra plus tard) l.reverse(): retourne une liste dont les éléments sont ceux de l mais d’ordre inversé len(l): retourne la taille de l. l[i:j] donne la sous-liste composée des valeurs aux positions i, i+1, …, j-1 l[:j] donne la sous-liste composée des valeurs aux positions 0, 1, …, j-1 l[j:] donne la sous-liste composée des valeurs aux positions j, j+1, …, n-1
  • 36. List comprehension Les list comprehensions sont des expressions qui permettent de générer des listes d’une manière très compacte  Forme générale: [ expression for expr in sequence1 for expr2 in sequence2 ... for exprN in sequenceN if condition ] 
  • 37. List comprehension  Exemples:  l=[i**2 for i in range(10)]  M=[[1, 7, 2], [8, 4, 3], [1, 9, 6]] P=[[ row[j] % 2 for j in range(len(M[0])] for row in M ]  T=[[row[i] for row in M] for i in range(len(M[0]))]
  • 38. Exercice  Faire un programme Permettant de faire le chiffrement (déchiffrement) en ROT13 en utilisant les structures précedemment vues et sans utiliser le modulo.
  • 39. QUESTIONS ? Merci pour votre présence