Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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 将while循环替换为range函数_Python_Python 2.7 - Fatal编程技术网

Python 将while循环替换为range函数

Python 将while循环替换为range函数,python,python-2.7,Python,Python 2.7,我可以用范围函数替换while循环吗。我正在使用以下代码 check = 0 while check<5: print check check+=2 这是正确的方法吗 >编辑我的问题 如果我没有在for循环中使用_check变量。我是否可以避免使用check=check+1来声明原始while循环 for x in xrange(5): print x 有关控制流工具(如循环)的更多信息,请参阅文档 编辑 如果希望在每次迭代中增加2,可以使用上述代码和指

我可以用范围函数替换while循环吗。我正在使用以下代码

check = 0
while check<5:
      print check
      check+=2
这是正确的方法吗

>编辑我的问题


如果我没有在for循环中使用_check变量。我是否可以避免使用check=check+1来声明原始while循环

for x in xrange(5):
    print x
有关控制流工具(如循环)的更多信息,请参阅文档

编辑

如果希望在每次迭代中增加2,可以使用上述代码和指定的增量:

for x in xrange(0,5,2):
    print x

是的,您正在正确使用
range()
,但您可能希望在此处使用:

for check in xrange(0, 5, 2):
    print check
xrange()
迭代时会产生相同的结果,但不会首先构建所有可能索引的完整列表,因此使用的内存更少:

>>> range(0, 5, 2)
[0, 2, 4]
>>> xrange(0, 5, 2)
xrange(0, 6, 2)
由于终点不包括在值中,因此在此处使用
5
6
作为终点并不重要,它只是根据输入参数为您计算的

如果未使用循环变量,则可以使用
\uu
指示在循环中忽略它。这只是一种命名约定:

for _ in xrange(0, 5, 2):
    # do something 3 times.
在这种情况下,您也可以通过两步计算0到5之间的索引数量,并将循环简化为:

upper_limit, step = 5, 2
for _ in xrange((upper_limit - 1 + step) // step):
    # do something 3 times.

可能只是一个输入错误,但在提议的第一个示例中似乎有一个错误:最后一行应该ne check+=2编辑更正了语法,很明显(至少对我来说)OP希望
循环以两步一步递增。或者是否存在将
检查+1
更改为
检查+2
的宽限期编辑?是的,martijn-原始问题在while循环中的检查+=1。
upper_limit, step = 5, 2
for _ in xrange((upper_limit - 1 + step) // step):
    # do something 3 times.