为什么我们不能创造出超越光速的飞行器?有一个可能是:我们本身就是以光速在“智”宇宙中狂奔着。
“坐地日行八万里”,在我们形成生命的那一瞬间,我们便拥有了地球的自转速度,除了这个速度还有地球围绕太阳的速度,还有太阳围绕银河飞行的速度,还有银河围绕更大质量星系的飞行速度,还有还有还有……,这些速度按角度折算后叠加的结果是怎样?不要局限于E=M*C*C和宇宙膨胀说,仰望星空,“智”宇宙给予我们的不仅仅是烟波浩渺的震撼。
收。
今天我们继续python的内容,前面的篇章,列举了很多列表的例子,比如:a=[1,2,3,4],如果列表盒子里需要有更多的元素,那么我们要怎么办,依次写下去吗?也可以,不过这个难度虽然比超越光速简单,但我们不必悲催地一个一个地写出来。
python提供了range()工具,这个工具呢,可以很方便地让我们得到一个很多元素的列表,怎么用呢,看例子。
>>> range(9)range(0, 9)>>> list(range(9))[0, 1, 2, 3, 4, 5, 6, 7, 8]>>>
当我们想创建一个9个元素的列表,那么我们可以用list(range(9)),这个时候我们不必一个一个地将列表里的元素写出来,很方便吧。
这个range()工具的括号里面最多可以包含三个内容,分别用逗号隔开,如:
range(a,b,c)
这里的a代表起点,默认值是0,若忽略不写时,c也不能写出来。
这里的b代表终点,它是必须写的内容,如上面的例子range(9),数字9即是b的值。
这里的c代表增项,即以什么样的增项从a到b,默认值为1,在上面的例子中,range(9)等同于range(0,9,1),写法上只是忽略了第一位置的0和末尾的1,而不是range(9,1),只忽略不写了第一位置的0。
>>> list(range(9,1))[]>>>
使用list(range(9,1))后,得到一个空列表,很显然range(9,1)不是range(9)。
range(9,1)等同于什么?range(9,1)等同于range(9,1,1),忽略不写的是最末位的1,可以这样理解:内容c是最优先可忽略的,其次是内容a,这个要记牢。
>>> list(range())TypeError: range expected 1 arguments, got 0>>>
若我们在括号中什么也不写,单纯的list(range())是不行的,即:内容b不能不写。
值得注意的是,使用range(a,b,c)产生的列表,当c=1时,列表元素的个数是b个。
有了range(a,b,c)这样的工具,创造数字元素列表很方便,我们利用这三个内容可以创建一些不同的列表来更深入的了解。
>>> a=0>>> b=30>>> c=1>>> list(range(a,b,c))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20, 21, 22, 23, 24, 25, 26, 27, 28, 29]>>> list(range(b))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20, 21, 22, 23, 24, 25, 26, 27, 28, 29]>>>
这是c等于1的样子,列表元素的个数是30个,c=2呢?
>>> c=2>>> list(range(a,b,c))[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]>>> len(list(range(a,b,c)))15>>>
当c=2时,产生了b//c个元素的列表,而且是个偶数列表。
有奇数的么?
>>> a=1>>> list(range(a,b,c))[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]>>> len(list(range(a,b,c)))15>>>
很神奇,当a=1时,奇数列表出现了。
由此看来,列表元素的个数只取决于b//c,能被整除时,元素个数即是b//c,那不能被整除时呢?
>>> b=9>>> len(list(range(a,b,c)))4>>> b//c4>>>
不能被整除时,b//c好像也是对的。好吧好吧,b//c虽然写起来简单,可使用工具len(),牺牲些时间,准确度有保障。
c是负值会怎样呢?
>>> c=-2>>> len(list(range(a,b,c)))0>>>
居然是个空列表,对对对,c为负值的时候,起点数字要大于终点的数字。
>>> a=9>>> b=0>>> len(list(range(a,b,c)))5>>> list(range(a,b,c))[9, 7, 5, 3, 1]>>>
哦哦,这样得到的元素个数: (a+1)//(-c),很麻烦,很不好理解,好吧,获取列表的元素个数还是用len()这个工具,很直观。
今天的内容就这么多,range()工具是我们创造数字元素列表的工具,有了这样的工具,我们很容易创造出一些特殊的全是数字的列表,忽然有种感想,之所以我们创造不出超越光速的飞行器,很大可能是我们使用的工具不对,或许在未来的某一天,我们发现类似range()的工具,可以以任意倍数的光速进行飞行。
—————————-