请教关于range的问题
我编写了一个:list(range(-10))
输出的是:[]
请问是为什么呢?range函数默认只写一个参数是(0,-10),我认为的结果应该是0,-1,-2,-3.....-9。可是为什么是[]呢? 我的理解是range(-10)本身并不是一个迭代器,他不是0,-1......, range默认正向步长,要实现你想要的结果要写完参数:range(0, -10, -1) =========帮助文档===========
>>> help(range)
Help on class range in module builtins:
class range(object)
|range(stop) -> range object
|range(start, stop[, step]) -> range object
|
|Return an object that produces a sequence of integers from start (inclusive)
|to stop (exclusive) by step.range(i, j) produces i, i+1, i+2, ..., j-1.
|start defaults to 0, and stop is omitted!range(4) produces 0, 1, 2, 3.
|These are exactly the valid indices for a list of 4 elements.
|When step is given, it specifies the increment (or decrement).
==============详解==========
range(start,stop,step)
start可省略,默认是0
stop不可省略,表示终止值
step可省略,默认是1
range(-10),可以理解为range(0,-10,1)
上面已经给出了答案,正确的做法是range(0,-10,-1) hrp 发表于 2020-11-5 17:35
range默认正向步长,要实现你想要的结果要写完参数:range(0, -10, -1)
谢谢您的回答,但是我想知道list(range(0,-10,1)),输出的结果会是[].求教 philip_g 发表于 2020-11-6 14:39
谢谢您的回答,但是我想知道list(range(0,-10,1)),输出的结果会是[].求教
range(0, -10, 1)正向步长的情况下意味着范围最大值为-10(不包含),第一个数0就比-10大,不在范围内,更不要说是第二个0+1、第三个0+1+1...了,所以将range(0, 10, 1)是空的,转换成列表结果肯定是空的了,这不难理解吧? hrp 发表于 2020-11-6 15:14
range(0, -10, 1)正向步长的情况下意味着范围最大值为-10(不包含),第一个数0就比-10大,不在范围内 ...
谢谢
页:
[1]