Python中for循环和while循环的区别
在本篇文章中,我们将了解“for”和“while”循环之间的区别。
for循环
for循环是一个控制流语句,用于执行预定义次数的循环。在此控制流语句中使用的关键字是“ for ”。当循环次数已知时,使用for循环。
for循环分为两个部分 −
头部 − 此部分指定循环的迭代。在头部中还声明了循环变量,告诉循环体正在执行的迭代。
循环体 − 循环体包含每次迭代执行的语句。
- 初始化、条件检查和迭代语句在循环开始时编写。
-
仅在循环次数已知时使用。
-
如果在“for”循环中未提及条件,则循环无限次。
-
只进行一次初始化,并且不会重复。
-
迭代语句在开始时编写。
-
因此,在执行循环中的所有语句之后只执行一次。
语法
for(initialization; condition; iteration){
//body of the 'for' loop
}
示例
以下程序使用for循环打印所有列表元素 −
# 输入列表
inputList = [10, 20, 30, 40, 50]
print("输入列表元素:")
# 使用for循环遍历列表中的所有元素
for element in inputList:
# 打印列表中的每个元素
print(element)
输出
在执行上述程序后,将生成以下输出 −
输入列表元素:
10
20
30
40
50
while循环
当一个条件为真时,运行单个语句或一组语句的循环。此循环由关键字“while”表示。因为在while循环的开始处测试条件,所以它也称为预测试循环。
- 初始化和条件检查在循环开始时进行。
-
仅在迭代次数未知时使用。
-
如果在“while”循环中未提及条件,则会导致编译错误。
-
如果在检查条件时进行初始化,则每次迭代循环时都进行初始化。
-
迭代语句可以编写在循环内的任何位置。
语法
while ( condition) {
statements;
//循环体
}
示例
以下程序使用while循环打印所有列表元素 −
# 初始化一个值为1的虚拟变量
i = 1
# 循环直到条件不成立
while i < 10:
# 打印上述变量的当前值
print(i)
# 将i的值增加1
i += 1
输出
执行上述程序后,将生成以下输出 −
1
2
3
4
5
6
7
8
9
何时使用for循环和while循环?
当我们 知道 迭代次数时,使用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
.
.
.
.
无限次运行
我们从列表开始,将其初始化为单个随机值。然后,使用for循环和in运算符遍历列表的元素。在循环内部,将输出一些随机文本,然后我们会添加另一个元素到列表中,所以由于新元素而再次执行for循环。通过这种方式,循环无限次执行。
while循环 − 在以下示例中,循环将无限次运行。
例子
while True:
print("TutorialsPoint")
输出
执行上述程序后,将生成以下输出 −
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
无限次运行
微分表
比较基础 | for循环 | while循环 |
---|---|---|
关键词 | 使用 for 关键词 | 使用 while 关键词 |
用途 | 当迭代次数已知时使用for循环。 | 当迭代次数未知时使用while循环。 |
条件的缺失 | 在条件缺失时,循环无限次运行。 | 在条件缺失时,会返回编译错误。 |
初始化的性质 | 初始化一旦完成,就不能重复执行。 | 在while循环中,初始化可以在每次迭代中重复执行。 |
函数 | 为了迭代,使用range或xrange函数。 | 在while循环中,没有这样的函数。 |
基于迭代的初始化 | 必须在循环开始时完成。 | 在while循环中,可以在循环体的任何地方完成。 |
生成器支持 | Python的for循环可以迭代生成器。 | while循环不能直接迭代生成器。 |
速度 | for循环比while循环更快。 | 相对于for循环,while循环速度较慢。 |
结论
在本文中,我们学习了for循环和while循环之间的差异,以及如何通过示例来使while和for循环工作。