Bonjour,

Le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
#-*- coding:utf8 -*-
from timeit import Timer
 
def xn_naif(x,n):
    res=1.
    i=n
    while i != 0:
        res *= x
        i -= 1
    return res
 
print "resultat = ",xn_naif(2,2)
t0 = Timer('xn_naif(2,2)').timeit(10000000)
me renvoie l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
resultat =  4.0
Traceback (most recent call last):
  File "./essai.py", line 27, in ?
    t0 = Timer('xn_naif(2,2)').timeit(10000000)
  File "/usr/lib64/python2.4/timeit.py", line 161, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 6, in inner
NameError: global name 'xn_naif' is not defined
Lorsque j'apelle la fonction xn_naif dans le print ça fonctionne, mais l'appel dans le Timer plante... Pourquoi?
Je pense qu'il faudrait définir xn_naif dans le Timer, mais n'y a-t-il pas une manière de faire comprendre à l'interpreteur que xn_naif est déjà définie?