Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,下面的代码中有什么错误?范围(20,-1,0)返回和#x27;这是个错误_Python - Fatal编程技术网

Python,下面的代码中有什么错误?范围(20,-1,0)返回和#x27;这是个错误

Python,下面的代码中有什么错误?范围(20,-1,0)返回和#x27;这是个错误,python,Python,错误是: for i in range(20,-1,0): print(i) 回溯(最近一次呼叫最后一次): 文件“D:/Python/b.py”,第1行,在 对于范围(20,-1,0)内的i: ValueError:range()arg 3不能为零 范围包含三个参数:开始、停止和步骤 Traceback (most recent call last): File "D:/Python/b.py", line 1, in <module> for i in ra

错误是:

for i in range(20,-1,0):
    print(i)
回溯(最近一次呼叫最后一次):
文件“D:/Python/b.py”,第1行,在
对于范围(20,-1,0)内的i:
ValueError:range()arg 3不能为零

范围
包含三个参数:开始、停止和步骤

Traceback (most recent call last):
  File "D:/Python/b.py", line 1, in <module>
    for i in range(20,-1,0):
ValueError: range() arg 3 must not be zero
表示从
20
-1
以大小
0
为步长

这毫无意义,因此python抛出了一个错误。

在for循环中:

range(20,-1,0):
若要按相反顺序迭代,需要传递第三个参数为负(阅读注释):

要按正常顺序进行迭代,您需要传递+ve编号:

>>> range(20,-1, -1)  # 
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(20,-1, -2)
[20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0]
阅读Python文档:

这是一个多功能函数,用于创建包含算术级数的列表。它是 最常用于for循环。参数必须是纯整数。如果 忽略步骤参数,默认为1。如果开始参数 如果省略,则默认为0。完整表单返回一个纯文本列表 整数
[start,start+step,start+2*step,…]
。如果步骤是 正,最后一个元素是小于的最大
start+i*步数
停止如果步骤为负,则最后一个元素是最小的
start+i
*步骤
大于停止
步骤
不得为零(否则会引发ValueError)


因此,您得到的是
ValueError:range()arg 3不能为零
exception

我想您正在寻找:

   range(start, stop[, step])   
第三个元素是阶跃,它不能为零,如果你向后走,它应该是负数,而不是正数。呼叫
帮助(范围):

返回包含整数算术级数的列表。
范围(i,j)
返回
[i,i+1,i+2,…,j-1]开始(!)默认为
0
。 当给定步长时,它指定增量(或减量)。对于 例如,
range(4)
返回
[0,1,2,3]
。终点省略了
这些正是4个元素列表的有效索引


您想做什么?它告诉您错误:
range()arg 3不能为零
您指定的步骤是
0
,这是不可能的。我们如何从
20
-1
0
计数?这个问题似乎离题了,因为它是关于从回溯中读取错误的。翻转第三个和第二个参数:list(范围(20,0,-1))
>>> range(0, 20, 1) # == range(0, 20) == range(20)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> range(0, 20, 2)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 
   range(start, stop[, step])   
>>> range(20,-1,-1)
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>>
range(...)
range([start,] stop[, step]) -> list of integers