Présentation python : Épisode 1 ● Introduction à Python ● Les types de base et leur manipulation ● Les structures de contrôle ● Les fonctions Étienne Loks et David Mentré - 14 janvier 2008
Pourquoi python ? ● Apprentissage rapide ● Portable ● Adapté à des projets de petite et grande envergure ● Langage mature qui évolue toujours ● Richesse des bibliothèques disponibles ● Utilisé pour enrichir des applications existantes ● C'est beau !
Pourquoi pas ? ● Performances moyennes ● Ne fais pas la une de 01 Informatique ;) ● Manque d'utilisateurs dans certains domaines
Deux mots d'histoire ● Créé en 1990 par Guido Van Rossum pour des besoins de recherche interne mais aussi pour l'enseignement ● Licence compatible GPL depuis la version ● Développement d'une communauté importante et structurée (fondation PSF, les PEPs...)
Exemples de réalisation ● Langage d'extension pour The Gimp, Blender, grass ● Utilitaires d'administration Ubuntu ● Frameworks web : Turbogears, Django, etc. ● Gestion de projet : Trac
Plongeons nous dedans ! ● Disponible de base sur de nombreux systèmes d'exploitation (GNU/Linux, OS X) ● Installable facilement si ce n'est pas le cas ● paquet python sur Debian, Ubuntu ● executable Windows disponible ● Éditeurs : eric, Emacs avec python-mode, vim, Eclipse avec PyDEV, ipython
Un langage de haut niveau ● Un langage interpreté (avec génération de pseudo- code) : ● utilisation interactive ● gestion automatique de la mémoire ● à typage dynamique ● à typage fort ● programmation impérative et objet (et même un peu de fonctionnel)
Ce que vous allez apprendre ● Entier, flottants ● utilisation comme une calculette ● Chaîne de caractères ● Liste d'éléments, tableaux ● Tuples ● Dictionnaire ● Fonctions
Au boulot ! ● Lancer l'interpréteur $ python Python (r251:54863, Oct , 13:36:32) [GCC (prerelease) (Ubuntu ubuntu2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ● Utilisons le comme une calculette >>> >>> >>> 20/3 6 >>> 20.0/
L'affectation ● Quelques exemples >>> n=7 >>> message = "Quoi de neuf ?" >>> pi = >>> n 7 >>> message 'Quoi de neuf ?' >>> pi ● Récupérer des données de l'utilisateur >>> a=input('') 34 >>> a 34 >>> a=input('> ') > "toto" >>> a 'toto'
Les types de base ● Entiers ● Flottants ● Chaînes de caractères >>> a="tati" >>> len(a) 4 >>> a[3] 'i' >>> a[3]='j' Traceback (most recent call last): File " ", line 1, in TypeError: 'str' object does not support item assignment
Listes et tableaux ● Definir une liste >>> a = ['spam', 'eggs', 100, 1234] >>> a ['spam', 'eggs', 100, 1234] ● Quelques opérations >>>> a[0] 'spam' >>> a[3] 1234 >>> a[-2] 100 >>> a[1:-1] ['eggs', 100] >>> a[:2] + ['bacon', 2*2] ['spam', 'eggs', 'bacon', 4] >>> 3*a[:3] + ['Boo!'] ['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']
Listes et tableaux (II) ● Les listes sont mutables >>> a ['spam', 'eggs', 100, 1234] >>> a[2] = a[2] + 23 >>> a ['spam', 'eggs', 123, 1234] ● Longueur et listes imbriquées >>> q = [2, 3] >>> p = [1, q, 4] >>> len(p) 3 >>> p[1] [2, 3] >>> p[1][0] 2 >>> p[1].append('xtra') # See section 5.1 >>> p [1, [2, 3, 'xtra'], 4] >>> q [2, 3, 'xtra']
Tuples ● Quelques exemples de tuples >>> t = 12345, 54321, 'Salut !' >>> t[0] >>> t (12345, 54321, 'hello!') >>> # Les tuples peuvent aussi être imbriqués :... u = t, (1, 2, 3, 4, 5) >>> u ((12345, 54321, 'Salut !'), (1, 2, 3, 4, 5))
Dictionnaires ● Créer un dictionnaire >>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'sape': 4139, 'guido': 4127, 'jack': 4098} ● Utiliser un dictionnaire ● >>> tel['jack'] 4098 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel {'guido': 4127, 'irv': 4127, 'jack': 4098} >>> tel.keys() ['guido', 'irv', 'jack'] >>> tel.has_key('guido') True >>> 'guido' in tel True
Structures de contrôle ● Tests booléens ● if ● for ● while
Petite pause ● Avec tout ce que vous avez vu jusqu'à maintenant, vous pouvez écrire des scripts
Fonctions ● Définition d'une fonction >>> def carre(x):... return x*x... ● Passage des paramètres >>> carre (2) 4 >>> carre (pi) ● Visibilité des variables ● Paramètres et arguments
Fonctions (II) ● Visibilité des variables >>> a = 4 >>> def f(x):... a=5... return x*a... >>> a 4 >>> f(4) 20 ● Paramètres et arguments >>> a=4 >>> def f(b):... b = b return b... >>> a 4 >>> f(a) 7 >>> a 4
En guise de conclusion ● Avec tout ce que vous avez vu (et un peu de lecture de documentation) vous pouvez faire des programmes (impératifs) ● Un exemple >>> for line in urllib2.urlopen(' if line.find('http') != -1:... print line,... " href=" class="header">Association Gulliver ● Prochain épisode : les objets
Références ● Pour apprendre la programmation et Python ● La documentation de référence (en Anglais) ● Une communauté française