Bref rappel des bases de la programmation en Python

publicité
Introduction à la programmation en Python
Rushed Kanawati
LIPN, CNRS UMR 7030
Université Paris 13
http://lipn.fr/∼kanawati
[email protected]
September 30, 2013
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
1 / 18
Plan
1
Introduction
2
Types et structures de données
3
Instructions de contrôles
4
Les fonctions
5
Utilisation de modules
6
Manipulation de fichiers
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
2 / 18
Introduction
Python
Pourquoi ? :
Python est un langage de programmation pour prototypage rapide.
open source.
Beaucoup de paquetages spécialisés : Traitement de graphes, analyse
numérique, traitement d’images, Apprentissage automatique, etc.
Langage interprété
Typage dynamique
Site Web : http://www.python.org
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
3 / 18
Types et structures de données
Declaration de variables
Le type d’une variable dépende de sa valeur
var1
var2
var3
var4
=
=
=
=
5 # entier codé sur 32 bits
100 L
# entier codé sur 64 bits
3.0 # un réel codé sur 64 bits
10+5 J # un complexe avec
# var4 . rea désigne la partie réel
# var4 . imag désigne la partie imaginaire
chaine = " Toto " # une chaine de caractères
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
4 / 18
Types et structures de données
Conversion de types
La fonction type() renvoie le type d’une variable.
Python offre des fonctions constructeurs des types de base :
int()
long()
float()
complex()
str()
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
5 / 18
Types et structures de données
Structure de données
Trois types en Python :
Les listes
Les tuples
Les dictionnaires
Les éléments d’une collection ne sont pas forcément de même type
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
6 / 18
Types et structures de données
Liste
Liste = séquence d’éléments (hétérogènes).
Syntaxe : l = [1, ’2’, [3]]
Opérations :
+ Concaténation
len(l) : retourne le nombre d’éléments dans l
l.append(e) : ajouter e à la fin de l
l[i ] : retourne l’élément i de l
e in l : retourne true si e est dans l
l.remove(e) : enlever l’élement e de l
l.count(e) : retourner le nombre d’occurrence de e dans l
l[i:j ] : retourner une sous-liste composée des éléments dans
l’intervalle i, j
l[i: ] : retourne le suffixe à partire de la position i
l[:j ]: retourne le préfixe composé de j premiers éléments.
l.sort() : trier la liste.
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
7 / 18
Types et structures de données
Liste : fonctions usuelles de génération
range(n) générer une liste des n premiers entiers positifs.
range(i,j) : générer une liste contenant la séquence d’entiers entre i et
j.
str.split(’sep’) : décomposer la chaı̂ne str en liste en utilisant sep
comme séparateur.
print " 1 ,2 ,3 " . split ( ’ , ’)
[1 ,2 ,3]
list(l) : créer une copie de la liste l
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
8 / 18
Types et structures de données
Tuple
Séquence non modifiable d’éléments.
Syntaxe :
t = (1 , " 2 " ,[3])
print t [2] # affiche [3]
t [2]. append (4)
print t # affiche (1 ,"2" ,[3 ,4])
t [2]= range (5) # affiche :
Traceback ( most recent call last ):
File " < stdin > " , line 1 , in < module >
TypeError : ’ tuple ’ object does not support item assig
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
9 / 18
Types et structures de données
Dictionnaire
Une collection d’association entre clé et une valeur
Syntaxe : d = {”abricot” : ”fruit”, ”poireau” : ”légume”}
Une clé est séparée de la valeur associée par :
Opérations :
Accès à une valeur : en donnant la clé associée entre crochet :
d["abricot"] retourne fruit
Ajout d’une nouvelle relation : d["raisin"]="fruit"
keys() : retourne la list des clés.
values() : retourne la list des valeurs.
items() : retourne une liste des associations.
del d[clé] : Effacer une association
has key(k) : retourne True si k est une clé.
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
10 / 18
Instructions de contrôles
Blocs d’instructions
Le début d’un bloc d’instructions est marqué par une indentation
L’indentation se fait par une tabulation
La fin d’un bloc corresponds au retour au niveau d’indentation
supérieur.
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
11 / 18
Instructions de contrôles
Instruction conditionelle
if cond : # cond est une condition booléenne
instructions - bloc - if
else :
instructions - bloc - else
if cond :
bloc -1
elif cond :
bloc -2
else :
bloc -3
while cond :
bloc while
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
12 / 18
Instructions de contrôles
Instruction for
for i in range (5):
print i
d ={ " abricot " : " fruit " , " poireau " : " légume " }
for k in d . keys ():
print d [ k ]
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
13 / 18
Les fonctions
Déclaration de fonctions
def mafonction (a ,b , c =1):
return a + b + c
print mafonction (1 ,2 ,3) # affiche 6
print mafnction (1 ,2) # affiche 4
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
14 / 18
Utilisation de modules
Module en Python
un module est une collection de fonctions et constantes
importation : import nom du module
from nom du module import *
import nom du module as m
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
15 / 18
Manipulation de fichiers
Lecture d’un fichier texte
f = open ( " monfichie " ," r " )
l = f . readline ()
while l != ’ ’:
# traitement
l = f . readline ()
f . close ()
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
16 / 18
Manipulation de fichiers
Ecriture d’un fichier texte
f = open ( " monfichie " ," w " )
f . write ( " texte " )
f . close ()
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
17 / 18
Manipulation de fichiers
TP : initiation
Télécharger fichier football.net de :
http://www-lipn.univ-paris13.fr/∼kanawati/ars/football.net
Format : nodex nodey poids
Exercice 1 : Développer une fonction python qui permet de
retourner : le nombre de nœuds , le nombre de liens et la densité du
graphe.
Exercice 2 : Développer une fonction python qui permet de générer
un fichier de la forme : nœud degré
Exercice 3 : en utilisant le fichier généré dans 2) développer une
fonction python qui permet de générer un fichier de la forme : degré
nombre de nœuds
Exercice 4 :Tracer la distribution de degrés avec une échelle linéaire
puis en échelle logarithmic (utiliser Gnuplot ?)
R. Kanawati (LIPN)
Programmation en Python
September 30, 2013
18 / 18
Téléchargement