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