python for或while循环执行n次[重复]

5jvtdoz2  于 2023-03-11  发布在  Python
关注(0)|答案(4)|浏览(167)

此问题在此处已有答案

Is it possible to make a for loop without an iterator variable? (How can I make make code loop a set number of times?)(14个答案)
7个月前关闭。
在Python中,有两种很好的方法可以多次重复某个动作,一种是while循环,另一种是-for循环,下面我们来看两段简单的代码:

for i in range(n):
    do_sth()

另一个是:

i = 0
while i < n:
    do_sth()
    i += 1

我的问题是哪一个更好。当然,第一个,在文档示例和各种代码中很常见,你可以在互联网上找到,要优雅得多,也更短,但另一方面,它创建了一个完全无用的整数列表,只是为了循环它们。这不是浪费内存吗,特别是考虑到大量的迭代?
你觉得怎么样,哪条路更好?

jei2mxaa

jei2mxaa1#

但另一方面,它创建了一个完全无用的整数列表,只是为了循环它们,这不是浪费内存吗,尤其是考虑到大量的迭代?
这就是xrange(n)的用途,它避免了创建一个数字列表,而只是提供了一个迭代器对象。
在Python 3中,xrange()被重命名为range()--如果你想要一个列表,你必须通过list(range(n))明确地请求它。

flmtquvp

flmtquvp2#

这比xrange(和while循环)更轻,因为它甚至不需要创建int对象,而且在Python2和Python3中同样有效

from itertools import repeat
for i in repeat(None, 10):
    do_sth()
iezvtpos

iezvtpos3#

Python3号和Python2号

只需使用range()

for _ in range(n):
    # do something n times exactly
6qqygrtg

6qqygrtg4#

大多数编程语言的根本区别在于,* 除非 * 意外发生,for循环总是重复n次 * 或直到break语句,(其可以是有条件的)被满足 * 则以X1 M2 N1 X循环结束它可以重复X1 M3 N1 X,根据在每个循环开始时必须为真以使其执行并且在退出循环时总是为假的给定条件,(为了完整性,X1 M4 N1 X循环(或X1 M5 N1 X)对于具有它的语言总是至少执行一次并且不保证第一次执行的条件)。
值得注意的是,在Python中,forwhile语句可以包含breakcontinueelse语句,其中:

  • break-终止循环
  • continue-移动到循环的下一次,而这次不执行以下代码
  • else-如果循环完成但未执行任何break语句,则执行。
    **N.B.**在 * 现在不支持的 * Python 2 range中产生了一个整数列表,但是你可以使用xrange来使用迭代器。在Python 3中,range返回一个迭代器。

所以你问题的答案是“* 这完全取决于你想做什么 *”!

相关问题