我在Jupyter笔记本上运行这个小循环
import time
def time_loop(reps):
start = time.clock()
count = 0
for i in range(reps):
count += 1
return time.clock() - start
time_loop(10000^100)
无论我作为一个参数输入什么,我似乎总是得到大约0.003的输出
0.0031050000000050204
发生了什么事?
一个猜测是python知道循环的结果只是count = reps,并退出循环?
但如果我改为运行
import time
import numpy as np
def time_loop(reps):
start = time.clock()
count = 0
for i in range(reps):
count += np.sin(reps)
return time.clock() - start
time_loop(10000^100)
当我增加参数时,确实需要更长的时间,即使循环的结果仍然非常简单地计数= reps * sin(reps)。
答案 0 :(得分:1)
^
是xor而不是指数:
>>> 10000^100
10100
这是一个很大的数字,但与指数不一样:**
,返回:
>>> 10000**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
这也需要"而#34;迭代。
可以为运营商及其优先级提供一个很好的参考^ - 按位XOR
** - Exponentiation