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

Introduction à Python - Achraf Kacimi El Hassani

Embed Size (px)

DESCRIPTION

Initiation au langage de programmation python

Citation preview

Page 1: Introduction à Python - Achraf Kacimi El Hassani

INTRODUCTION à python

Par: Achraf KACIMI EL HASSANI

Life is short, use Python …

Page 2: Introduction à Python - 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

Page 3: Introduction à Python - Achraf Kacimi El Hassani

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

Page 4: Introduction à Python - Achraf Kacimi El Hassani
Page 5: Introduction à Python - Achraf Kacimi El Hassani

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)

Page 6: Introduction à Python - Achraf Kacimi El Hassani

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.

Page 7: Introduction à Python - Achraf Kacimi El Hassani

Syntaxe de base

Page 8: Introduction à Python - Achraf Kacimi El Hassani

Opérateurs

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

la ligne

Exemple: #Ceci est un commentaire

Opérateurs logiques:

and

or

not

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

Page 9: Introduction à Python - Achraf Kacimi El Hassani

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)

Page 10: Introduction à Python - Achraf Kacimi El Hassani

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.

Page 11: Introduction à Python - Achraf Kacimi El Hassani

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

Page 12: Introduction à Python - Achraf Kacimi El Hassani

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

(2+3j) + (4-7j) # (6-4j)

(9+5j).real # 9.0

(9+5j).imag # 5.0

abs(3+4j) # 5.0 : module

(3+4j).conjugate # retourne le conjugué: 3-4j

Page 13: Introduction à Python - Achraf Kacimi El Hassani

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)

Page 14: Introduction à Python - Achraf Kacimi El Hassani

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

Page 15: Introduction à Python - Achraf Kacimi El Hassani

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

Page 16: Introduction à Python - Achraf Kacimi El Hassani

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

Page 17: Introduction à Python - Achraf Kacimi El Hassani

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

Page 18: Introduction à Python - Achraf Kacimi El Hassani

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)

Page 19: Introduction à Python - Achraf Kacimi El Hassani

Notion de bloc d’instructions:

D’autres langages délimitent un bloc par les symboles , - ou BEGIN,

END

Python utilise l’indentation

Un bloc d'instructions est une suite d'instructions qui est alignée sur la

même tabulation.

Les blocs sont utilisés pour définir les corps des fonctions, des boucles,

des classes ...

Page 20: Introduction à Python - Achraf Kacimi El Hassani

Structures de contrôle

Page 21: Introduction à Python - Achraf Kacimi El Hassani

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

Page 22: Introduction à Python - Achraf Kacimi El Hassani

Les conditions:

Synthaxe:

if condition 1:

BLOC 1

elif condition 2: #Equivalent à else if

BLOC 2

else:

BLOC 3

Page 23: Introduction à Python - Achraf Kacimi El Hassani

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 "

Page 24: Introduction à Python - Achraf Kacimi El Hassani

Les boucles

La boucle while

while condition:

BLOC D’INSTRUCTIONS

Exemple:

i=0

while i<5:

i=i+1

print i,

Page 25: Introduction à Python - Achraf Kacimi El Hassani

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

Page 26: Introduction à Python - Achraf Kacimi El Hassani

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

Page 27: Introduction à Python - Achraf Kacimi El Hassani

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.

Page 28: Introduction à Python - Achraf Kacimi El Hassani

Structures de données

Page 29: Introduction à Python - Achraf Kacimi El Hassani

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èmecaractè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 '

Page 30: Introduction à Python - Achraf Kacimi El Hassani

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

Page 31: Introduction à Python - Achraf Kacimi El Hassani

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

Page 32: Introduction à Python - Achraf Kacimi El Hassani

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

Page 33: Introduction à Python - Achraf Kacimi El Hassani

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]]

Page 34: Introduction à Python - Achraf Kacimi El Hassani

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)

Page 35: Introduction à Python - Achraf Kacimi El Hassani

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

Page 36: Introduction à Python - Achraf Kacimi El Hassani

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 ]

Page 37: Introduction à Python - Achraf Kacimi El Hassani

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

Page 38: Introduction à Python - Achraf Kacimi El Hassani

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.

Page 39: Introduction à Python - Achraf Kacimi El Hassani

QUESTIONS ?

Merci pour votre présence