File: ecrit_2007.tex, line 28
def fonction_log2 (k) : n = 0 while 2**n < k : n += 1 return n
File: ecrit_2007.tex, line 38
def fonction_log2 (k) : for i in range (0,1000) : if 2**i >= k : return i
File: ecrit_2007.tex, line 47
def fonction_log2 (k) : if k <= 1 : return 0 else : return fonction_log2 ((k+1)/2)+1
File: ecrit_2007.tex, line 63
def parcours (n) : i = 1 j = 1 while i+j < n : print (i,j) i += 1 j -= 1 if j < 1 : j = i+j i = 1
File: ecrit_2007.tex, line 101
(1,1) (1,2) (2,1) (1,3) (2,2) (3,1)
File: ecrit_2007.tex, line 115
(1,4) (2,3) (3,2) (4,1) (1,5) (2,4) (3,3) ...
File: ecrit_2007.tex, line 130
i += 1 j -= 1
File: ecrit_2007.tex, line 137
if j < 1 : j = i+j i = 1
File: ecrit_2007.tex, line 155
def suite (n) : n = n ** 2 / 2 + 1 return n n = 3 for i in range (0,10) : n = suite (n) % 17 print n
File: ecrit_2007.tex, line 198
def ensemble_lettre (s) : ens = [] for i in range (0, len (s)) : c = s [i] if c in ens : ens.append (c) return ens print lettre ("baaa")
File: ecrit_2007.tex, line 225
def compte_lettre (s) : nombre = {} for c in s : nombre [c] += 1 return nombre print compte_lettre ( "mysteres" )
File: ecrit_2007.tex, line 237
KeyError: 'm'
File: ecrit_2007.tex, line 261
def compteur (s) : nombre = {} for c in s : nombre [c] = 0 # ligne ajoutée for c in s : nombre [c] += 1 return nombre
File: ecrit_2007.tex, line 273
def compteur (s) : nombre = {} for c in s : if c not in nombre : nombre [c] = 0 # ligne ajoutée nombre [c] += 1 return nombre
File: ecrit_2007.tex, line 285
{'e': 2, 'm': 1, 's': 2, 'r': 1, 't': 1, 'y': 1}
File: ecrit_2007.tex, line 292
def compteur (s) : alpha = "abcdefghijklmnopqrstuvwxyz" nombre = [ 0 for c in alpha ] for c in s : i = alpha.index (c) nombre [i] += 1 return nombre
File: ecrit_2007.tex, line 305
[0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 0]
File: ecrit_2007.tex, line 313
print compteur ( "mysteres" ) print compteur ( compteur ("mysteres") ) print compteur ( [0,1,1,4,-1, (6,0), 5.5, "ch"] ) print compteur ( { 1:1, 2:2, 1:[] } )
File: ecrit_2007.tex, line 323
print compteur ( [0, [0,0] ] )
File: ecrit_2007.tex, line 340
def autre_parcours (n) : i = 0 j = 0 k = 0 while k < n : print (k,i,j) if i == 0 and j == 0 : k += 1 if j == 0 and i < k : i += 1 elif i == k and j < k : j += 1 elif j == k and i > 0 : i -= 1 elif i == 0 and j > 0 : j -= 1 autre_parcours (3)
File: ecrit_2007.tex, line 379
def ligne_nulle (mat) : nb = 0 for i in range (0, len (mat)) : lig = 0 for j in range (0, len (mat [i])) : if mat [i][j] > 0 : lig += 1 if lig == 0 : nb += 1 return nb matri = [ [ random.randint (0,1) for i in range (0,4) ] for j in range (0,20) ] print ligne_nulle (matri)
File: ecrit_2007.tex, line 417
def ligne_nulle (mat) : nb = 0 for i in range (0, len (mat)) : lig = 0 for j in range (0, len (mat [i])) : if mat [i][j] > 0 : lig += 1 if lig == 0 : nb += 1 # ligne décalée vers la gauche return nb
File: ecrit_2007.tex, line 441
class erreur : def __init__ (self) : self.e = erreur () e = erreur ()
File: ecrit_2007.tex, line 451
Traceback (most recent call last): File "examen2007.py", line 4, in ? e = erreur () File "examen2007.py", line 2, in __init__ self.e = erreur () File "examen2007.py", line 2, in __init__ self.e = erreur () File "examen2007.py", line 2, in __init__ self.e = erreur () ...
File: ecrit_2007.tex, line 473
class erreur : def __init__ (self,e) : self.e = e
File: ecrit_2007.tex, line 493
def base3 (n) : s = "" while n > 0 : r = n % 3 # ....... à compléter # ....... à compléter return s
File: ecrit_2007.tex, line 512
def base3 (n) : s = "" while n > 0 : r = n % 3 s = str (r) + s n = n / 3 # équivalent à n = (n-r) / 3 # puisque / est une division entière return s
File: ecrit_2007.tex, line 534
import copy import math import random class Eleve : def __init__ (self, note) : self.note = note e = Eleve (0) l = [] for i in range (0,81) : e.note = int (random.gauss (15, 3) + 0.5) # tirage aélatoire et arrondi if e.note >= 20 : e.note = 20 # pas de note au-dessus de 20 if e.note < 0 : e.note = 0 # pas de note négative l.append (e) moy = 0 var = 0 for e in l : moy += e.note moy = float (moy) / len (l) # les notes sont entières, # il faut convertir avant de diviser # pour obtenir la moyenne for e in l : var += (e.note - moy) ** 2 var = math.sqrt ( float (var) ) / len (l) print "moyenne ", moy print "écart-type ", var
File: ecrit_2007.tex, line 570
moyenne 16.0 écart-type 0.0
File: ecrit_2007.tex, line 616
#... e = Eleve (0) l = [] for i in range (0,81) : e.note = int (random.gauss (15, 3) + 0.5) if e.note >= 20 : e.note = 20 if e.note < 0 : e.note = 0 l.append (e.note) # ligne modifiée moy = 0 var = 0 for note in l : # ligne modifiée moy += note # ligne modifiée moy = float (moy) / len (l) for note in l : # ligne modifiée var += (note - moy) ** 2 # ligne modifiée var = math.sqrt ( float (var) ) / len (l) print "moyenne ", moy print "écart-type ", var
File: ecrit_2007.tex, line 644
moy = 0 var = 0 for note in l : moy += note var += note * note moy = float (moy) / len (l) var = float (var) / len (l) var = var - moy * moy var = math.sqrt ( float (var) ) print "moyenne ", moy print "écart-type ", var
File: ecrit_2007.tex, line 680
def puiss (x, n) : s = 1.0 for i in range (0,n) : s *= x return s def log_suite (x) : x = float (x-1) # ...... s = 0 old = -1 n = 1 while abs (old - s) > 1e-10 : old = s po = puiss (x,n) / n if n % 2 == 0 : po = -po s += po n += 1 # ...... return s print log_suite (2)
File: ecrit_2007.tex, line 706
# ...... # ...... # ...... # ...... # ...... # ...... def log_suite (x) : x = float (x-1) x0 = x s = 0 old = -1 n = 1 while abs (old - s) > 1e-10 : old = s po = x / n if n % 2 == 0 : po = -po s += po n += 1 x *= x0 return s print log_suite (2)
File: ecrit_2007.tex, line 742
def racine_carree (k) : x0 = float (k)+1 x = float (k) while abs (x-x0) > 1e-10 : x0 = x x = (k-x*x) / (2 * x) + x return x
File: ecrit_2007.tex, line 768
class Noeud : def __init__ (self, mot) : self.mot = mot self.avant = None self.apres = None def insere (self, mot) : if mot < self.mot : if self.avant == None : self.avant = Noeud (mot) else : self.avant.insere (mot) else : if self.apres == None : self.apres = Noeud (mot) else : self.apres.insere (mot) def affiche (self) : if self.avant != None : self.avant.affiche () print self.mot if self.apres != None : self.apres.affiche () li = ["premier","deuxième","troisième","quatrième","cinquième","sixième","centième","mystère"] r = None for m in li : if r == None : r = Noeud (m) else : r.insere (m) r.affiche ()
File: ecrit_2007.tex, line 799
centième cinquième deuxième mystère premier quatrième sixième troisième