Python 步长为2次方的范围函数,并在十位数位置增加零的数量

Python 步长为2次方的范围函数,并在十位数位置增加零的数量,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,用N绘制程序规模的性能?为此,请多次运行程序,并取绘图给定值N的最短时间。您可以使用N=10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000等的值范围。 如何将python的值range()用于N=10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000等等 numbers_sizes = (i*exp for exp in range(2, 10,2) for i in range(10,

用N绘制程序规模的性能?为此,请多次运行程序,并取绘图给定值N的最短时间。您可以使用
N
=10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000等的值范围。 如何将python的值
range()
用于
N
=10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000等等

numbers_sizes = (i*exp for exp in range(2, 10,2) for i in range(10, 10000,10*2))

但这并不能提供所需的答案

整数除法和一些模运算

[10**(1+i//4)*2**(i%4) for i in range(15)]
Out[179]: 
[10,
 20,
 40,
 80,
 100,
 200,
 400,
 800,
 1000,
 2000,
 4000,
 8000,
 10000,
 20000,
 40000]
如果你真的在“比赛”并且用2的幂来做数学运算,那么有时候二进制运算被编译得稍微紧凑一些,可能执行得更快

import timeit
>>> timeit.timeit('[10**(1+i//4)*2**(i%4) for i in range(100)]', number=1000)
Out[197]: 0.06518084562951763


[10**(1+(i>>2))<<(i & 3) for i in range(15)]

timeit.timeit('[10**(1+(i>>2))<<(i & 3) for i in range(100)]', number=1000)
Out[199]: 0.04540084575825176
import timeit
>>>timeit.timeit(“[10**(1+i//4)*2**(i%4)表示范围(100)内的i)”,数字=1000)
Out[197]:0.06518084562951763

[10**(1+(i>>2))输入数字5,然后使用range()函数打印1 3 6 10 15

我不理解这个问题……但是如果你想在数字上加零(如标题所说),你可以使用zfill.like'1'。zfill(4)>>>'0001'需要更多描述。