“从零开始,一点一滴地分享所有我学到的Python知识。”
首先,开门见山。range指令的语法是:range(start, stop, step). 其中,start指计数的开始数字,默认是从0开始;step指每次跳跃的步长,默认为1;end指,在默认情况下(start=0, step=1),计数的结束位置(注意不是数字,而是位置)。
range()的参数可以是一个、两个、三个。不同的参数有不同的定义和用法。
如果括号内只有一个数字,系统会默认其为stop;如果括号内有两个数字,系统会判定其为start和stop;如果括号内有三个数字,则分别为start, stop和step.
我们输入代码:
range(0,6)
系统只会输出:
输入代码:
print(range(0,6))
系统只会输出:
range(0, 6)
这是因为range(0,6)仅仅代表有range(0,6)这样一个实体。为了更好地表示它,我们输入如下命令:
print(list(range(6)))
或者
print(list(range(0,6)))
(二者均可)
则才会输出:
[0, 1, 2, 3, 4, 5]
这样,range指令才被用list表示出来了。
接下来用具体例子演示一下range命令的语法:
①正如刚才提到的:如果括号内只有一个数字,系统会默认其为stop;如果括号内有两个数字,系统会判定其为start和stop。这样就是刚才的命令:
print(list(range(6)))
print(list(range(0,6)))
都会输出
[0, 1, 2, 3, 4, 5]
的原因。
因为都规定了stop为6(也就是从0开始数,第“6”位为止,而第“6”位为数字5)。
②如果括号内有两个数字,且第一个数字不为0. 举例如下:
输入命令:
print(list(range(1,6)))
系统则输出:
[1, 2, 3, 4, 5]
注:如果括号内有两个数字,且第一个数字大于第二个数字。则输出结果为空list。举例如下:
输入命令:
print(list(range(8,2)))
系统则会输出:
[]
③如果括号内有三个数字,则按start, end, stop的顺序进行指派。举例如下:
输入:
print(list(range(0,8,2)))
则会输出:
[0, 2, 4, 6]
注意:此处要注意理解end的含义。正如上文提到:end指,在默认情况下(start=0, step=1),计数的结束位置。
同理,输入:
print(list(range(3,31,3)))
则会输出:
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
本文参考命令:
print(range(0,6))
print(list(range(6)))
print(list(range(1,6)))
print(list(range(0,8,2)))
print(list(range(8,2)))
print(list(range(3,31,3)))
如上参考命令的输出结果为:
range(0, 6)
[0, 1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[0, 2, 4, 6]
[]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]