目录
For 循环
语法
示例
输出
While 循环
什么时候应该使用 For 和 While 循环?
在没有条件的情况下
差异表
结论
首页 后端开发 Python教程 在Python中,for循环和while循环之间的区别是什么?

在Python中,for循环和while循环之间的区别是什么?

Sep 09, 2023 pm 03:37 PM
区别 (difference) for循环 (for loop) while循环(while循环)

在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 循环

针对给定的真条件运行单个语句或一组语句的循环。该循环由关键字“while”表示。当迭代次数未知时,使用“while”循环。重复该语句直到布尔值为假。由于条件是在 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 循环。当我们需要根据重复次数以外的条件结束循环时,可以使用它。在这种情况下,没有必要提前了解情况。这就是为什么我们可以在循环的初始化中使用布尔表达式。

在没有条件的情况下

如果 for 和 while 循环中没有指定条件,则循环将无限迭代。

在没有条件的情况下,以下是 for 循环和 while 循环之间的区别 -

For Loop - 在下面的示例中,循环将运行无限次。

示例

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 循环的工作原理。

以上是在Python中,for循环和while循环之间的区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解决Linux终端中查看Python版本时遇到的权限问题? 如何解决Linux终端中查看Python版本时遇到的权限问题? Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到? 如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础? 如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础? Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? 在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中? Apr 01, 2025 pm 11:15 PM

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Uvicorn是如何在没有serve_forever()的情况下持续监听HTTP请求的? Apr 01, 2025 pm 10:51 PM

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

在Linux终端中使用python --version命令时如何解决权限问题? 在Linux终端中使用python --version命令时如何解决权限问题? Apr 02, 2025 am 06:36 AM

Linux终端中使用python...

如何绕过Investing.com的反爬虫机制获取新闻数据? 如何绕过Investing.com的反爬虫机制获取新闻数据? Apr 02, 2025 am 07:03 AM

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...

See all articles