La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…

Présentations similaires


Présentation au sujet: "CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…"— Transcription de la présentation:

1 CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…

2 Paradigme de programmation par scripting Langage de plus haut niveau –Syntaxe simple Souvent interprété Axé sur le développement rapide Typage dynamique –Variable non-déclarée –Erreur de typage détecté à lexécution Riche en modules réutilisable CSI2520, Hiver 2007

3 Python Créé en 1991, en logiciel libre depuis 2000 Cest avant tout un langage multi- paradigme Programmation très productive (3x à 10x) –Facile à apprendre –Prototypage rapide Encourage la réutilisation et le logiciel libre –Beaucoup de modules disponibles CSI2520, Hiver 2007

4 Interpréteur Python CSI2520, Hiver 2007 >>> print "Hello world ! " Hello world ! >>> >>> 1 + 1 2 >>>

5 Typage CSI2520, Hiver 2007 >>> y = 3.14 >>> y 3.1400000000000001 >>> a = "bonjour" >>> a 'bonjour' >>> b = 'salut' >>> b 'salut' >>> c = '''girafe''' >>> c 'girafe >>> x = 45 >>> x + 2 47 >>> y = 2.5 >>> x + y 47.5 >>> (x * 10) / y 180.0 >>> chaine = "Salut" >>> chaine 'Salut' >>> chaine + " Python" 'Salut Python' >>> chaine * 3 'SalutSalutSalut' >>> x = 2 >>> type(x) >>> x = 2.0 >>> type(x) >>> x = '2' >>> type(x)

6 Ecriture formattée CSI2520, Hiver 2007 >>> x = 32 >>> nom = 'John' >>> print nom, ' a ', x, ' ans' John a 32 ans >>> nbG = 4500 >>> nbC = 2575 >>> percGC = propGC * 100 >>> print "Ce génome contient %i G et %i C, un %GC de %.2f" % (nbG,nbC,percGC),"%" Ce génome contient 4500 G et 2575 C, un %GC de 47.80 %

7 Listes CSI2520, Hiver 2007 >>> animaux = ['girafe','tigre','singe','souris'] >>> animaux[1] 'tigre >>> animaux[-2] 'singe' >>> tailles = [5, 2.5, 1.75, 0.15] >>> mixte = ['girafe', 5, 'souris', 0.15] >>> animaux ['girafe', 'tigre', 'singe', 'souris'] >>> tailles [5, 2.5, 1.75, 0.15] >>> mixte ['girafe', 5, 'souris', 0.15] >>> range(0,1000,200) [0, 200, 400, 600, 800] >>> animaux[0:2] ['girafe', 'tigre'] >>> animaux[0:3] ['girafe', 'tigre', 'singe'] >>> animaux[0:] ['girafe', 'tigre', 'singe', 'souris'] >>> animaux[:] ['girafe', 'tigre', 'singe', 'souris'] >>> animaux[1:] ['tigre', 'singe', 'souris'] >>> animaux[1:-1] ['tigre', 'singe'] >>> ani1 = ['girafe','tigre'] >>> ani2 = ['singe','souris'] >>> ani1 + ani2 ['girafe', 'tigre', 'singe', 'souris'] >>> ani1 * 3 ['girafe', 'tigre', 'girafe', 'tigre', 'girafe', 'tigre']

8 Opérations sur les listes CSI2520, Hiver 2007 >>> a = [66.25, 333, 333, 1, 1234.5] >>> print a.count(333), a.count(66.25), a.count('x') 2 1 0 >>> a.insert(2, -1) >>> a.append(333) >>> a [66.25, 333, -1, 333, 1, 1234.5, 333] >>> a.index(333) 1 >>> a.remove(333) >>> a [66.25, -1, 333, 1, 1234.5, 333] >>> a.reverse() >>> a [333, 1234.5, 1, 333, -1, 66.25] >>> a.sort() >>> a [-1, 1, 66.25, 333, 333, 1234.5]

9 Génération de listes CSI2520, Hiver 2007 >>> squares = [x**2 for x in range(10)] >>> squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] >>> vec = [[1,2,3], [4,5,6], [7,8,9]] >>> [num for elem in vec for num in elem] [1, 2, 3, 4, 5, 6, 7, 8, 9]

10 Dictionnaire CSI2520, Hiver 2007 >>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'sape': 4139, 'guido': 4127, 'jack': 4098} >>> tel['jack'] 4098 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel {'guido': 4127, 'irv': 4127, 'jack': 4098} >>> tel.keys() ['guido', 'irv', 'jack'] >>> 'guido' in tel True

11 Boucle Lindentation est obligatoire –Lutilisation de 4 espaces est suggérée CSI2520, Hiver 2007 >>> for i in range(4):... print i... 0 1 2 3 >>> animaux = ['girafe', 'tigre', 'singe', 'souris'] >>> for i in range(4):... print animaux[i]... girafe tigre singe souris

12 Test CSI2520, Hiver 2007 >>> if x < 0:... x = 0... print 'Negative changed to zero'... elif x == 0:... print 'Zero'... elif x == 1:... print 'Single'... else:... print 'More'

13 Modules Un module est un fichier texte contenant des instructions Python Le nom du fichier est le nom du module –Extension.py –Variable système PYTHONPATH CSI2520, Hiver 2007 >>> import fibo >>> fibo.fib(1000) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

14 Définir un module CSI2520, Hiver 2007 def fib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b, a, b = b, a+b def fib2(n): # return Fibonacci series up to n result = [] a, b = 0, 1 while b < n: result.append(b) a, b = b, a+b return result

15 Fichiers CSI2520, Hiver 2007 >>> f = open(fichier.txt', 'w') >>> f.readline() 'This is the first line of the file.\n' >>> f.readlines() ['This is the first line of the file.\n', 'Second line of the file\n'] >>> for line in f: print line This is the first line of the file. Second line of the file

16 Persistence CSI2520, Hiver 2007 pickle.dump(x, f) x = pickle.load(f) Nimporte quel objet peut être sauvegardé

17 Programmation fonctionnelle CSI2520, Hiver 2007 >>> def f(x): return x % 2 != 0 and x % 3 != 0... >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23] >>> def cube(x): return x*x*x... >>> map(cube, range(1, 11)) [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000] >>> def add(x,y): return x+y... >>> reduce(add, range(1, 11)) 55

18 Tour de Hanoi CSI2520, Hiver 2007 def hanoi(n,de,a,par): if n>0: hanoi(n-1,de,par,a) print str(de),"-->",str(a) hanoi(n-1,par,a,de) n=input("donner le nombre de disques : ") hanoi(n,1,2,3)


Télécharger ppt "CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…"

Présentations similaires


Annonces Google