Présentation python : Épisode 2 Exemples d'application Utiliser ses programmes Les fonctions Les modules Étienne Loks et David Mentré - 28 janvier 2008
Exemples d'application (I) Vérification (basique) de nombre premier Aide : l'opérateur % : retourne la partie entière d'une division >>> 25 % 5 0 Programme : i = raw_input("Veuillez entrez un nombre : ") i = int(i) est_premier = True for j in xrange(2, i): if i%j == 0: est_premier = False print str(i) + " n'est pas un nombre premier, il est divisible par " + str(j) if est_premier: print str(i) + " est un nombre premier"
Exemples d'application (II) Chiffrage simple de message Aide : fonction ord : retourne le numéro ascii du caractere en entrée fonction chr : retourne le charactère associé à un numéro ascii Programme : message = raw_input("Message à chiffrer : ") decalage = int(raw_input("Décalage : ")) message_chiffre, message_dechiffre = "" for caractere in message: code_ascii = (ord(caractere) + decalage) % 255 message_chiffre += chr(code_ascii) print "Message chiffré : " + message_chiffre for caractere in message_chiffre: code_ascii = (ord(caractere) - decalage + 255) % 255 message_dechiffre += chr(code_ascii) print "Message déchiffré : " + message_dechiffre
Utiliser ses programmes Enregistrer dans un fichier avec une extension .py etienne@enomwoyi:~$ python chiffrage.py Le rendre directement executable (sous linux) : entête comprenant le chemin vers l'interpréteur #!/usr/bin/python # -*- coding: utf-8 -*- rendre executable le fichier etienne@enomwoyi:~$ chmod u+x chiffrage.py etienne@enomwoyi:~$ ./chiffrage.py
Les fonctions (I) Définition d'une fonction def bonjourLeMonde(): print "Bonjour le monde !" print bonjourLeMonde() Visibilité des variables dans une fonction >>> message = "Bonjour le monde" >>> def afficheMessage(): print message >>> afficheMessage() >>> <= rien ! >>> def definiNombre(): nbr = 2 >>> print nbr Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'nbr' is not defined
Les fonctions (II) Arguments et retour de valeur Arguments optionnels def chiffrage(message, decalage): """Chiffrage d'un message ASCII par un décalage.""" message_chiffre = "" for caractere in message: code_ascii = (ord(caractere) + decalage) % 255 message_chiffre += chr(code_ascii) return message_chiffre Arguments optionnels def chiffrage(message, decalage=5): (...) print chiffrage("Bonjour le monde !") print chiffrage("Bonjour le monde !", 8)
Les modules Import de module >>> import math >>> print math.pi 3.14159265359 >>> print math.sin(math.pi/2) 1.0 Import de fonctions, de variables d'un module >>> from math import pi, sin >>> print sin(pi/2) __doc__, la fonction dir >>> print sin.__doc__ sin(x) Return the sine of x (measured in radians). >>> dir(math)
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 >>> import urllib2 >>> for line in urllib2.urlopen('http://gulliver.eu.org/'): ... if line.find('http') != -1: ... print line, ... "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> href="http://gulliver.eu.org/" class="header">Association Gulliver</a></td>