在Python中for循环和while循环的区别
在本篇文章中,我们将了解“for”循环和“while”循环的区别。
for循环
for循环是一种控制流语句,用于执行预定义次数的代码。在这个控制流语句中使用的关键字是“for”。当循环次数已知时,使用for循环。
for循环分为两个部分−
头部 −这部分指定了循环的迭代。在头部部分,还声明了循环变量,告诉循环体正在执行的迭代是哪个。
体部 −体部分包含每次迭代执行的语句。
- 初始化、条件检查和迭代语句在循环开始时编写。
-
仅在循环次数事先已知时使用。
-
如果在“for”循环中未提及条件,则循环将无限次迭代。
-
初始化只能执行一次,不会重复执行。
-
迭代语句在开始时编写。
-
因此,在循环中的所有语句都执行完毕后,它只执行一次。
语法
for(initialization; condition; iteration){
//body of the 'for' loop
}
示例
以下程序使用for循环打印出所有的列表元素 –
# input list
inputList = [10, 20, 30, 40, 50]
print("Input list elements:")
# traversing through all elements of the list using for loop
for element in inputList:
# printing each element of the list
print(element)
输出
在执行时,上述程序将生成以下输出内容 –
Input list elements:
10
20
30
40
50
While循环
一个根据 true 条件运行单个语句或一组语句的循环。该循环由关键字”while”表示。当迭代次数未知时,使用while循环。该语句会重复执行直到布尔值为 false 。由于条件在 while 循环开始时被测试,因此它也被称为前测试循环。
- 初始化和条件检查在循环开始时完成。
-
仅在迭代次数未知时使用。
-
如果在while循环中未提供条件,则会导致编译错误。
-
如果在检查条件时进行初始化,则每次循环迭代都会进行初始化。
-
迭代语句可以在循环的任何位置编写。
语法
while ( condition) {
statements;
//body of the loop
}
示例
以下程序使用for循环打印出所有列表元素 –
# Initializing a dummy variable with 1
i = 1
# Iterate until the given condition is true
while i < 10:
# printing the current value of the above variable
print(i)
# incrementing the value of i value by 1
i += 1
输出
执行后,上述程序将生成以下输出 −
1
2
3
4
5
6
7
8
9
何时使用for循环和while循环?
当我们知道迭代的次数,也就是需要执行语句的次数时,我们使用for循环。这就是为什么在初始化for循环时,我们必须定义结束点。
当迭代次数未知时,我们使用while循环。当我们需要通过条件而不是次数来结束循环时,我们使用while循环。在这种情况下,我们不需要事先知道条件。这就是为什么我们可以在循环的初始化中使用布尔表达式。
没有条件时
如果在for循环和while循环中没有指定条件,循环将无限迭代。
在没有条件的情况下,以下是for循环和while循环之间的区别:
For循环 - 在下面的示例中,循环将无限次运行。
示例
l = [1]
for m in l:
print("TutorialsPoint")
l.append(m)
输出
在执行上述程序时,将生成以下输出结果:
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times
我们从一个列表开始,并用一个随机值初始化它。然后,使用for循环和in运算符,我们遍历列表的元素。在循环内部,它将打印一些随机文本,然后我们再添加一个元素到列表中,所以由于新元素的存在,for循环再次执行。通过这种方式,循环无限次执行。
While循环 − 在下面的示例中,循环将无限次运行。
示例
while True:
print("TutorialsPoint")
输出
在执行上述程序时,将会生成以下输出-
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times
不同化表
基础比较 | for循环 | while循环 |
---|---|---|
关键词 | 使用关键词 for | 使用关键词 while |
用途 | 当迭代次数已知时使用for循环。 | 当迭代次数未知时使用while循环。 |
条件缺失 | 在条件缺失的情况下,循环无限次执行。 | 在条件缺失的情况下,返回编译时错误。 |
初始化方式 | 一旦完成,就无法重复。 | 在while循环中,可以在每次迭代时重复初始化。 |
函数 | 为了迭代,使用range或xrange函数。 | 在while循环中没有这样的函数。 |
基于迭代的初始化 | 在循环开始时进行。 | 在while循环中,可以在循环体的任何位置进行。 |
生成器支持 | Python的for循环可以迭代生成器。 | while循环不能直接迭代生成器。 |
速度 | for循环比while循环快。 | 相对于for循环来说,while循环较慢。 |
结论
在这篇文章中,我们学习了 for 和 while 循环之间的区别,以及通过例子了解了 while 和 for 循环的工作原理。