Python里的For循环和While循环怎么用呢?

本文深入介绍了Python中的for循环,强调了for循环用于遍历可迭代对象的特点,并通过实例解释了else子句在循环结束时的执行情况。此外,还探讨了break和continue在循环控制中的作用,以及它们的区别。文章通过举例展示了如何找出100以内的质数,进一步巩固了循环结构的理解。

我们继续我们的Python基础的学习,昨天我们学习了字典类型的使用以及控制结构里的顺序结构 if eif条件判断 while循环等内容,其中while循环里我们引入了else关键字和break关键字的时候,那么现在我们再回顾下,正常while循环是不包含else语句的,加上的else语句模块是在while正常执行完后才执行的代码块,而如果while内部通过break跳出的循环不会执行else部分的代码。

接下来我们继续看看循环里的另外一种书写方式,那就是其特有的for循环。For循环一般是用来遍历一个可迭代对象,例如列表、字典、元组、集合、字符串等内容,那啥是可迭代元素呢?可迭代元素不是一种具体的类型,目前我们接触的列表、字典、元组、集合、字符串等类型都是可迭代元素。后面我们学习了面向对象后,再回过头来看这个可迭代对象会好理解些。

粉丝福利腾讯文档-在线PDFhttps://docs.qq.com/pdf/DR3dMaE1CSkZ6RlBZ

那我们用for循环来访问下我们学习过的可迭代元素。

For 循环语法: for 。。。 in 。。。

Pass

跟while循环一样,for循环也可以带一个else语句块,那么当for循环正常执行完后就会执行else里的语句块。如果是中途退出的则不会执行else模块。例如:

输出为:

另外无论是while循环还是for循环,我们都支持嵌套,也就是实现多层循环。下面我们实现一个功能:输出 100以内的所有质数。

需求分析:100以内我们可以使用一个循环来进行控制,那么什么是质数呢?大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。也就是除了1和它本身,不能整除其他的数。

上面的break执行完了会跳转到哪里去?最后还能打印 质数判断执行完毕 这几个字吗?按照我们先前的理解,如果想打印这行语句,for循环里不能break跳出的。我们先看下结果吧:

从上面的结果看来,break只是结束了内层的循环。外层循环没有受影响。

先前我们认识了break语句,break适用于循环体内,表示终止当前的循环,跳出循环体,未执行的循环语句会被忽略掉。并且break只能退出一层循环,如果多层循环,直接使用break只能退出当前循环,无法退出外层循环。

提到break,我们不能忘了continue,这两个难兄难弟在初学者眼里很容易混淆,上面我们用到了break,知道了break可以跳出当前循环。那么continue是干什么用的呢?与break不同,continue是终止当前这次循环,不执行后续的代码,而是进入下一个循环里,并没有直接跳出当前循环。我们用一个例子来说明下吧。

输出为

输出为

通过上面的例子看到区别了吧,break直接跳出循环,continue是进入下一个循环。

基本数据类型介绍完了,控制结构也介绍完了,那么到现在为止,大家对python应该有一个初步的认识了,明天我们继续学习python的面向对象编程。

### 区别 #### 语法结构 - **for 循环**:有固定的语法结构,用于遍历可迭代对象,如列表、元组、字符串等。语法格式为 `for 元素 in 可迭代对象:`,循环次数取决于可迭代对象中元素的数量。例如: ```python fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) ``` - **while 循环**:基于条件判断来控制循环的执行,只要条件表达式为真,就会一直执行循环体。语法格式为 `while 条件表达式:`。例如: ```python count = 0 while count < 3: print(count) count = count + 1 ``` #### 循环控制逻辑 - **for 循环**:侧重于对可迭代对象中的元素进行遍历,循环次数由可迭代对象的长度决定,适合已知迭代次数的情况。 - **while 循环**:通过条件表达式来控制循环的执行,循环次数不固定,更适合在满足特定条件时持续执行操作,循环次数可能事先未知。 #### 死循环构造 在构造死循环时,while 循环的条件被看成表达式,用 `while TRUE` 构造死循环时,`TRUE` 实际上被看成永远为真的表达式,容易产生混淆,有些工具软件如 PC-Lint 会认为出错,而使用 `for(;;)` 构造死循环更合适 [^3]。例如: ```python # while 构造死循环 while True: print("这是一个死循环") # Python 没有 for(;;) 语法,但可以用 pass 模拟类似效果 for _ in iter(int, 1): pass ``` ### 使用场景 #### for 循环 - **遍历序列**:当需要遍历列表、元组、字符串等可迭代对象时,使用 for 循环非常方便。例如遍历字符串中的每个字符: ```python string = "hello" for char in string: print(char) ``` - **已知迭代次数**:如果明确知道循环需要执行的次数,可以使用 `range()` 函数结合 for 循环。例如计算 1 到 10 的整数之: ```python sum = 0 for i in range(1, 11): sum = sum + i print(sum) ``` #### while 循环 - **条件未知**:当循环的终止条件不明确,需要根据程序运行过程中的某些条件来决定是否继续循环时,使用 while 循环。例如从用户输入中读取数据,直到用户输入特定字符为止: ```python user_input = "" while user_input != "q": user_input = input("请输入内容(输入 q 退出): ") print("你输入的是:", user_input) ``` - **循环次数依赖于条件**:循环的执行次数取决于某个动态变化的条件时,适合使用 while 循环。例如实现一个猜数字游戏,直到猜对为止: ```python import random number = random.randint(1, 100) guess = 0 while guess != number: guess = int(input("猜一个 1 到 100 之间的数字: ")) if guess < number: print("猜的数字太小了,再试一次。") elif guess > number: print("猜的数字太大了,再试一次。") print("恭喜你,猜对了!") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值