python 3.6中代码的基准测试

python 3.6中代码的基准测试,python,python-3.6,Python,Python 3.6,我试图对代码进行基准测试,所以我尝试了以下方法: from timeit import * from random import randint as ri def linsearch(s,x): for i in range(len(s)): if s[i]==x: return # Set up code S = """ s = [] for i in range(10): s.append(random.ri

我试图对代码进行基准测试,所以我尝试了以下方法:

from timeit import *
from random import randint as ri
def linsearch(s,x):
   for i in range(len(s)):
       if s[i]==x:
          return

# Set up code
S = """     
    s = []
    for i in range(10):
       s.append(random.ri(0,10))
    x=s[5]
 """
# benchmark code
B="""    
  linsearch(s,x)
   """
p=10
m=100
t=min(Timer(B,S).repeat(10,100))
print("t:",t)

但这是行不通的。它不是随机的。我正在使用python 3.6。如何更正代码?

时间它似乎在单独的解释器环境中运行代码段,因此您必须导入安装代码中的内容

from timeit import *
def linsearch(s,x):
   for i in range(len(s)):
       if s[i]==x:
          return

# Set up code
S = """
from __main__ import linsearch
from random import randint as ri
s = []
for i in range(10):
    s.append(ri(0,10))
x=s[5]
 """
# benchmark code
B="""
linsearch(s,x)
"""
p=10
m=100
t=min(Timer(B,S).repeat(10,100))
print("t:",t)

timeit似乎在一个单独的解释器环境中运行代码段,因此您必须导入安装代码中的内容

from timeit import *
def linsearch(s,x):
   for i in range(len(s)):
       if s[i]==x:
          return

# Set up code
S = """
from __main__ import linsearch
from random import randint as ri
s = []
for i in range(10):
    s.append(ri(0,10))
x=s[5]
 """
# benchmark code
B="""
linsearch(s,x)
"""
p=10
m=100
t=min(Timer(B,S).repeat(10,100))
print("t:",t)

当然不是。你忘了在重要的地方导入它。另外:
n//2
-什么是
n
?阿尔法辛,我更改了代码。伊甘西奥,你能解释一下你的意思吗?如果你
导入random.randint作为ri
,你的代码不应该使用
ri()
而不是
random.ri()
?约翰,它不起作用。它显示的是未定义的
ri()
,当然不是。你忘了在重要的地方导入它。另外:
n//2
-什么是
n
?阿尔法辛,我更改了代码。伊甘西奥,你能解释一下你的意思吗?如果你
导入random.randint作为ri
,你的代码不应该使用
ri()
而不是
random.ri()
?约翰,它不起作用。它显示未定义的
ri()。