Exemples de programmes écrits dans le langage de programmation Python dans sa version 3.3
Exemples de codes représentatifs.
Une introduction.
ageDeEricPraline = 50
ageDeHenryWensleydale = 20
if 0 > ageDeEricPraline > 150 or ageDeEricPraline > ageDeHenryWensleydale:
 print("l'age de Eric Praline est incorrect")
ageDeHenryWensleydale, ageDeEricPraline = ageDeEricPraline,ageDeHenryWensleydale
print("age de Henry Wensleydale = %d , age de Eric Praline = %d" %(ageDeHenryWensleydale,ageDeEricPraline))
Les structures de données en natif.
maListeDeMeubles = ['table','chaise','frigo']
maListeDeMeubles.sort() #Tri de la liste
for unMeuble in maListeDeMeubles:
 print('longueur de la chaîne ', unMeuble, '=', len(unMeuble))
laListeDesNombresPairs = [unNombre for unNombre in range(1000) if unNombre % 2 == 0]
print (laListeDesNombresPairs)
for unNom, x in unAnnuaire.items():
 print("le nom %s a pour numéro de téléphone %d" %(unNom, x))
Couleur = ('Rouge', 'Bleu', 'Vert')
print(Couleur[0], Couleur[1], Couleur[2])
PointDeReference = (100, 200)
print(" x0 = %d y0 = %d " %(PointDeReference[0],PointDeReference[1]))
Accès a une base de données.
import MySQLdb, pprint
uneConnexionBDD = MySQLdb.connect(host ='192.32.12.10',
 user ='admin',
 passwd ='988',
 db ='uneBase')
leCurseur = uneConnexionBDD.cursor()
unAuteur = "'Zola'"
leCurseur.execute(""" SELECT title, description FROM books WHERE author = %s """ % (unAuteur,))
pprint.pprint(leCurseur.fetchall())
leCurseur.query("update books set title='assommoir' where author='Zola'")
uneConnexionBDD.commit()
import dbi, odbc
connexion = odbc.odbc('mondsn/monlogin/monpassword')
leCurseur = connexion.cursor()
leCurseur.execute('select clientid, name, city from client')
print(leCurseur.fetchall())
Programmation réseau - Internet.
import urllib
print(urllib.urlopen)
import ftplib 
uneSessionFTP = ftplib.FTP( host = '198.12.45.123',
 user = 'MonLogin',
 passwd = 'MonMotDePasse')
unFichier = open('monFichier.txt','rb') 
uneSessionFTP.storbinary( 'STOR monFichier.txt', unFichier ) #envoi du fichier 
unFichier.close() 
uneSessionFTP.quit() 
Tracé de courbes avec matplotlib.
import math
from pylab import plot, axis, savefig, show, title
plot( [1,2,3,4], 
 [1,4,9,16])
axis( [1, 4, 0, 16] )
title( 'ma courbe' ) 
savefig( 'c:\\uneCourbeSauvee.png' )
show()
Utilitaires de la bibliothèque standard.
lesDonneesImage = open('uneImage.gif','rb').read()
laChaineZippee = lesDonneesImage.encode('zlib').encode('base64')
Jython : utilisation de Java en Python.
from javax.swing import *
class MyApplet( JApplet ): 
 def init( self ): 
 unLabel= JLabel("Jython améliore la productivité")
 self.getContentPane().add( unLabel )
Mail.
import smtplib
from email.MIMEText import MIMEText
IPduServeur = 'localhost'
monFichierMail = open ('monMailAEnvoyer.txt', 'rb') # lecture du fichier
leMessage = MIMEText ( monFichierMail.read() ) # création d'un message text/plain 
monFichierMail.close()
leMessage['Subject'] = "Confirmation de l'exigence A441"
leMessage['From'] = "expediteur@phales.com"
leMessage['To'] = "destinataire@ecn.com"
leServeurSMTP = smtplib.SMTP(IPduServeur) # envoi du messge 
leServeurSMTP.connect()
leServeurSMTP.sendmail('expediteur@phales.com',
 'destinataire@ecn.com',
 leMessage.as_string())
leServeurSMTP.quit()
Classe.
Exemple de classe (voir programmation orientée objet).
class Fruit :
 def __init__(self) :
 pass
class Pomme(Fruit):
 Cette classe représente une pomme.
 Mangeurs = ["Jacques", "Nicolas","Virgile"]
 def __init__(self, couleur):
 Pour construire une Pomme, donnez sa couleur.
 Fruit.__init__(self)
 self._couleur = couleur
 def couleur(self):
 Retourne la couleur de la Pomme.
 return self._couleur
 def comestible(self, mangeur):
 Dit si la pomme est comestible ou non,
 en fonction du mangeur.
 if mangeur in self.Mangeurs:
 print(mangeur, "mange des pommes")
 else:
 print (mangeur, "n'aime pas les pommes")
petitePomme = Pomme("verte")
petitePomme.comestible("Pierre") # Pierre n'aime pas les pommes
petitePomme.comestible("Nicolas") # Nicolas mange des pommes
On remarque notamment la présence de documentation (optionnelle bien sûr) directement dans le code. La commande help() permet d'obtenir, dans l'interpréteur Python, cette aide directement :
donne :
WMI (sous Windows 2000/XP).
"Lister les processus et leur nom "
import wmi
controler = wmi.WMI ()
for unProcessus in controler.Win32_Process ():
 print (unProcessus.ProcessId, unProcessus.Name)
"Rebooter une machine à distance"
import wmi
controler = wmi.WMI (computer = "Nom_Machine_Distante",
 privileges = ["RemoteShutdown"] )
os = controler.Win32_OperatingSystem (Primary=1)[0]
os.Reboot ()
Automation Win32.
import win32com.client 
catiaApplication = win32com.client.Dispatch("CATIA.Application") 
monDocument = catiaApplication.ActiveDocument.Product
nombreDeProduit = monDocument.Products.Count 
for produits in range(nombreDeProduit): 
 produits += 1 
 print (monDocument.Products.Item(produits).Name)
from win32com.client import Dispatch
leMediaPlayer = Dispatch("WMPlayer.OCX")
uneMorceauDeMusique = leMediaPlayer.newMedia("C:/mesDoc/monTitre.wma") # ou mp3 
leMediaPlayer.currentPlaylist.appendItem(uneMorceauDeMusique)
leMediaPlayer.controls.play()
raw_input("appuyez sur la touche ENTRÉE pour arrêter la musique")
leMediaPlayer.leMediaPlayer.stop()
ctypes.
ctypes permet d'accéder directement à des dll.
import ctypes
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 
 0, 
 "C:\\Mes documents\\Mes images\\maPhoto.bmp" ,
 0)
SM_CXSCREEN = 0
SM_CYSCREEN = 1
taille_x = ctypes.windll.user32.GetSystemMetrics(SM_CXSCREEN)
taille_y = ctypes.windll.user32.GetSystemMetrics(SM_CYSCREEN)
print ("La résolution d'écran est %d par %d" % (taille_x, taille_y))
Data Mining - Réseaux bayésiens avec reverend.
from reverend.thomas import Bayes
unReseauBayesiens = Bayes()
uneListeDePropositions = [('math', 'on fait des calculs , des additions, des multiplications'),
 ('math', '3 + 4 = 7 ; 10 + 7 = 17 ; 99/11 = 9'),
 ('math', '12 + 10 -5 = 17 ; 70-10 = 60'),
 ('math', 'le carré des 2 côtés du triangle sont liés par une relation'),
 ('math', 'la fonction sinus ( sin ) sert à représenter les phénomènes cycliques'),
 ('math', 'sin (PI) = 3.14159 et cosinus (0) = 1' ),
 ('philosophie', 'je disserte sur le sens de la vie'),
 ('philosophie', 'être ou ne pas être, telle est la question'),
 ('philosophie', 'je sais que je ne sais rien'),
 ('philosophie', 'les phénomènes sont réels à condition que nous le souhaitions'),
 ('philosophie', 'la raison est-elle toujours raisonnable ?'),
 ('philosophie', 'le cerveau peut-il être compris ?'),
 ('philosophie', "l'univers peut-il être l'objet de connaissance ?"),
 ('philosophie', 'le calcul a-t-il des limites intrinsèques ?'),
 ('philosophie', "une relation peut être durable si l'homme la souhaite")]
for uneCategorie, uneProposition in uneListeDePropositions:
 unReseauBayesiens.train( uneCategorie, uneProposition ) # entrainement du réseau
phraseAnalyse1 = 'voici un résultat : 66/6 = 11 '
phraseAnalyse2 = "je ne saurais dire s'il pourra tout comprendre ... "
phraseAnalyse3 = "le phénomène de la pluie pourrait être d'origine divine"
phraseAnalyse4 = 'la représentation bourbakiste des chiffres assure leur détermination'
for unePhrase in (phraseAnalyse1, phraseAnalyse2, phraseAnalyse3, phraseAnalyse4) :
 solutions = unReseauBayesiens.guess(unePhrase) # calculs de la catégorie 
 categorie = solutions[0][0]
 probabilite = solutions[0][1]
 print ("la phrase '%s' est de catégorie '%s' avec une probabilité de '%d /100' " %(unePhrase,categorie,probabilite *100))