Python 将while循环替换为range函数
我可以用范围函数替换while循环吗。我正在使用以下代码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,可以使用上述代码和指
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.