File: ecrit_2008.tex, line 31
def arrondi_05 (x) : return float (int (x * 2 + 0.5)) / 2 def arrondi_0125 (x) : return float (int (x * 8 + 0.5)) / 8 def arrondi (x, p) : return float (int (x / p + 0.5)) * p
File: ecrit_2008.tex, line 51
for a in range (0, 10) : for b in range (0, 10) : for c in range (0, 10) : print [a,b,c]
File: ecrit_2008.tex, line 69
a,b,c = 0,0,0 while c < 10 : print [a,b,c] a += 1 if a == 10 : b += 1 a = 0 if b == 10 : c += 1 b = 1
File: ecrit_2008.tex, line 86
l = [0,0,0] while l [-1] < 10 : print l l [0] += 1 i = 0 while i < len (l)-1 and l [i] == 10 : l [i] = 0 l [i+1] += 1 i += 1
File: ecrit_2008.tex, line 112
def fibo (n) : if n <= 2 : return 2 else : return fibo (n-1) + fibo (n-2)
File: ecrit_2008.tex, line 137
nb = 0 # variable globale def fibo (n,p) : global nb if n <= 2 : nb += 1 return p # plus de récurrence else : nb += 2 return fibo (n-1,p) + fibo (n-2,p) for n in range (1, 20) : nb = 0 # remis à zéro, à chaque fois # nb est la mesure du coût print fibo(n,3)-2, nb # nombres identiques # nb vérifie la récurrence de la suite c(n) # c(n) = c(n-1) + c(n-2) + 2
File: ecrit_2008.tex, line 209
l = [0,1,2,3,4,5] g = l for i in range (0, len (l)-1) : g [i] = g [i+1] print l print g
File: ecrit_2008.tex, line 221
l = [0,1,2,3,4,5] g = [0,1,2,3,4,5] for i in range (0, len (l)-1) : g [i] = g [i+1] print l print g
File: ecrit_2008.tex, line 233
l = [0,1,2,3,4,5] g = [0,1,2,3,4,5] for i in range (0, len (l)) : g [i] = g [(i+1)%len (l)] print l print g
File: ecrit_2008.tex, line 253
[1, 2, 3, 4, 5, 5] [1, 2, 3, 4, 5, 5]
File: ecrit_2008.tex, line 261
[0, 1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 5]
File: ecrit_2008.tex, line 269
[0, 1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 1]
File: ecrit_2008.tex, line 277
l = [0,1,2,3,4,5] g = [0,1,2,3,4,5] for i in range (0, len (l)) : g [i] = l [(i+1)%len (l)] # ligne modifiée, g devient l print l print g
File: ecrit_2008.tex, line 291
import copy l = [0,1,2,3,4,5] g = copy.copy (l) # on pourrait aussi écrire g = list (l) # ou encore g = [ i for i in l ] for i in range (0, len (l)) : g [i] = l [(i+1)%len (l)] print l print g
File: ecrit_2008.tex, line 316
def mystere (l) : """cette fonction s'applique à des listes de nombres""" l.sort () nb = 0 for i in range (1,len (l)) : if l [i-1] != l [i] : nb += 1 return nb+1 l = [4,3,1,2,3,4] print mystere (l) # affiche 4
File: ecrit_2008.tex, line 342
[1, 2, 3, 3, 4, 4]
File: ecrit_2008.tex, line 350
import copy def mystere (l) : """cette fonction s'applique à des listes de nombres""" l = copy.copy (l) # ligne insérée # on peut écrire aussi l = list (l) l.sort () nb = 0 for i in range (1,len (l)) : if l [i-1] != l [i] : nb += 1 return nb+1
File: ecrit_2008.tex, line 376
class Personne : def __init__ (self, nom) : self.nom = nom def entete (self) : return "" def __str__ (self) : s = self.entete () + self.nom return s class Homme (Personne) : def __init__ (self, nom) : Personne.__init__ (self, nom) def entete (self) : return "M. " class Femme (Personne) : def __init__ (self, nom) : Personne.__init__ (self, nom) def entete (self) : return "Melle " h = Homme ("Hector") f = Femme ("Gertrude") print h print f
File: ecrit_2008.tex, line 406
class Personne : def __init__ (self, nom, entete) : self.nom = nom self.entete = entete def __str__ (self) : s = self.entete + self.nom return s h = Personne ("Hector", "M. ") f = Personne ("Gertrude", "Melle ") print h print f
File: ecrit_2008.tex, line 450
M. Hector Melle Gertrude
File: ecrit_2008.tex, line 459
class Personne : def __init__ (self, nom) : self.nom = nom def entete (self) : return "" def __str__ (self) : s = self.entete () + self.nom return s class Homme (Personne) : def __init__ (self, nom) : Personne.__init__ (self, nom) def entete (self) : return "M. " class Femme (Personne) : def __init__ (self, nom) : Personne.__init__ (self, nom) def entete (self) : return "Melle " class Hermaphrodite (Personne) : def __init__ (self, nom) : Personne.__init__ (self, nom) def entete (self) : return "Melle et M. " h = Homme ("Hector") f = Femme ("Gertrude") g = Hermaphrodite ("Marie-Jean") print h print f print g
File: ecrit_2008.tex, line 497
class Personne : def __init__ (self, nom, entete) : self.nom = nom self.entete = entete def __str__ (self) : s = self.entete + self.nom return s h = Personne ("Hector", "M. ") f = Personne ("Gertrude", "Melle ") g = Personne ("Marie-Jean", \ "Melle et M. ") print h print f print g
File: ecrit_2008.tex, line 552
def tri_entiers(l): """cette fonction s'applique à une liste d'entiers""" # groupe 1 m = l [0] M = l [0] for k in range(1,len(l)): if l [k] < m : m = l [k] if l [k] > M : M = l [k] # groupe 2 p = [0 for i in range (m,M+1) ] for i in range (0, len (l)) : p [ l [i] - m ] += 1 # groupe 3 R = [0 for i in range (m,M+1) ] R [0] = p [0] for k in range (1, len (p)) : R [k] = R [k-1] + p [k] # groupe 4 pos = 0 for i in range (1, len (l)) : while R [pos] < i : pos += 1 l [i-1] = pos + m l [len (l)-1] = M
File: ecrit_2008.tex, line 643
import random def tirage (poids) : nb = [ 0 for p in poids ] while True : i = random.randint (0, len (poids)-1) nb [i] += 1 if nb [i] == poids [i] : return i salaire = [ 10000, 5000, 3000, 2000 ] poids = [ int (s / 1000) for s in salaire ] nombre = [ 0 for s in salaire ] for n in range (0,1000) : p = tirage (poids) nombre [p] += 1 for i in range (0, len (poids)) : print "salaire ", salaire [i], " : nb : ", nombre [i]
File: ecrit_2008.tex, line 669
salaire 10000 : nb : 0 salaire 5000 : nb : 49 salaire 3000 : nb : 301 salaire 2000 : nb : 650
File: ecrit_2008.tex, line 685
import random def tirage (poids, nb) : while True : i = random.randint (0, len (poids)-1) nb [i] += 1 if nb [i] % poids [i] == 0 : return i salaire = [ 10000, 5000, 3000, 2000 ] poids = [ int (s / 1000) for s in salaire ] nombre = [ 0 for s in salaire ] temp = [ 0 for s in salaire ] for n in range (0,1000) : p = tirage (poids, temp) nombre [p] += 1 for i in range (0, len (poids)) : print "salaire ", salaire [i], " : nb : ", nombre [i]
File: ecrit_2008.tex, line 711
salaire 10000 : nb : 90 salaire 5000 : nb : 178 salaire 3000 : nb : 303 salaire 2000 : nb : 429
File: ecrit_2008.tex, line 747
dico = { } dico ["Jean"] = { } dico ["Jean"] ["Matthieu"] = { } dico ["Jean"] ["Pierre"] = { } dico ["Jean"] ["Matthieu"] ["Thomas"] = { } dico ["Jean"] ["Matthieu"] ["Louis"] = { } dico ["Jean"] ["Pierre"] ["Anne"] = dico ["Jean"] ["Matthieu"] ["Thomas"] dico ["Jean"] ["Pierre"] ["Henri"] = { } dico ["Jean"] ["Pierre"] ["Anne"] ["Alphonse"] = { } def print_dico (dico, niveau = 0) : decalage = "...." * niveau for d in dico : print decalage, d if len (dico [d]) > 0 : print_dico (dico [d], niveau+1) print_dico (dico) # première fois dico ["Jean"] ["Pierre"] ["Anne"] ["Bernard"] = { } ### ligne B print "**********" print_dico (dico) # seconde fois
File: ecrit_2008.tex, line 774
Jean .... Matthieu ........ Louis ........ Thomas ............ Alphonse .... Pierre ........ Anne ............ Alphonse ........ Henri ********** Jean .... Matthieu ........ Louis ........ Thomas ............ Bernard ............ Alphonse .... Pierre ........ Anne ............ Bernard ............ Alphonse ........ Henri