第八章:AI进阶之---循环语句(while循环与循环控制)一
本文介绍了Python中的while循环和循环控制语句。主要内容包括:while循环的基本语法和执行流程,强调避免死循环的方法;break和continue语句的区别与使用场景,break用于终止循环,continue用于跳过当前迭代;while与for循环的适用条件比较;以及循环结构在累加、数据验证等实际应用中的示例。通过学习,读者可以掌握while循环的基本用法,理解循环控制机制,并能够编写包
课时 9:循环语句(while 循环与循环控制)
文章目录
一、课程导入
欢迎来到 Python 循环语句的第二部分课程!在上一节课中,我们学习了 for 循环,它用于遍历可迭代对象中的每个元素。今天,我们将学习另一种重要的循环结构 ——while 循环,它允许程序在条件为真时重复执行代码块。同时,我们还将学习循环控制语句 break 和 continue,它们可以灵活地控制循环的执行流程。
本节课的学习目标:
-
掌握 while 循环的基本语法和执行逻辑
-
理解并避免死循环的条件设置
-
掌握 break 和 continue 语句的使用方法及其区别
-
能够使用 while 循环实现累加、累乘等基础应用
-
能够编写包含循环控制的交互式程序(如猜数字游戏)
在编程中,循环结构是实现重复执行任务的关键工具。while 循环特别适合于那些不知道循环次数,但知道终止条件的场景。例如,用户登录验证、游戏循环、数据验证等场景都可以使用 while 循环来实现。
现在,让我们开始今天的学习!
二、while 循环基础
2.1 while 循环的基本语法
while 循环是 Python 中另一种常用的循环结构,它会在条件表达式为真时重复执行代码块。与 for 循环不同,while 循环更适合于不知道具体循环次数,但知道终止条件的情况。
while 循环的基本语法格式:
while 条件表达式:
代码块
执行逻辑:
-
首先评估条件表达式的真假值。
-
如果条件为真,执行缩进的代码块。
-
代码块执行完毕后,再次评估条件表达式。
-
重复步骤 2 和 3,直到条件表达式为假,循环结束。
示例 1:简单的 while 循环
count = 1
while count <= 5:
print(f"Count: {count}")
count += 1
执行结果:
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
执行过程解析:
-
初始化变量 count 为 1。
-
检查条件 count <=5,条件为真,执行循环体。
-
打印当前 count 的值。
-
将 count 增加 1。
-
再次检查条件 count <=5,直到 count 变为 6 时条件为假,循环结束。
2.2 while 循环的执行流程
为了更好地理解 while 循环的执行流程,我们可以通过以下步骤来分析:
-
条件评估:首先计算条件表达式的布尔值。
-
条件判断:如果条件为真,执行循环体;如果为假,结束循环。
-
循环体执行:执行缩进的代码块。
-
循环继续:循环体执行完毕后,流程返回到条件评估步骤,继续循环。
执行流程图:
开始 → 评估条件 → 条件为真 → 执行循环体 → 返回评估条件 → 条件为假 → 结束
关键特性:
-
while 循环先判断条件,后执行循环体。
-
如果条件一开始就为假,循环体可能一次都不会执行。
-
循环体中必须有改变条件表达式的操作,否则会导致死循环。
2.3 避免死循环
在使用 while 循环时,最常见的错误就是无意中创建了死循环。死循环是指条件表达式永远为真,导致循环无限执行下去。
死循环示例:
# 错误示例:死循环
count = 1
while count <= 5:
print("Count:", count)
# 忘记增加count的值,导致条件永远为真
避免死循环的方法:
-
确保循环体内有改变条件表达式的操作:在每次循环中,必须有一个操作改变条件表达式中的变量,使其最终导致条件为假。
-
设置合理的终止条件:确保条件表达式最终会变为假。
-
使用 break 语句:在特定条件下强制退出循环(我们将在后面详细讨论)。
正确示例:
count = 1
while count <= 5:
print("Count:", count)
count += 1 # 增加count的值,确保条件最终为假
注意:在开发过程中,如果遇到死循环,可以按下Ctrl+C
组合键来强制终止程序。
2.4 while 循环与 for 循环的比较
while 循环和 for 循环都是 Python 中常用的循环结构,它们各有优缺点和适用场景:
适用场景比较:
场景 | for 循环 | while 循环 |
---|---|---|
已知循环次数 | 更适合 | 可以使用 |
未知循环次数,但知道终止条件 | 不适合 | 更适合 |
遍历可迭代对象 | 更适合 | 不适合 |
根据条件重复执行 | 不适合 | 更适合 |
示例对比:
# 使用for循环计算1到100的和
sum_for = 0
for i in range(1, 101):
sum_for += i
# 使用while循环计算1到100的和
sum_while = 0
i = 1
while i <= 100:
sum_while += i
i += 1
关键区别:
-
for 循环适用于已知循环次数或遍历可迭代对象的场景。
-
while 循环适用于不知道循环次数,但知道终止条件的场景。
-
while 循环需要手动管理循环变量,而 for 循环会自动管理。
三、循环控制语句
3.1 break 语句
break 语句用于提前终止当前循环,无论循环条件是否为真,程序会立即跳出循环,执行循环体后面的代码。
语法格式:
while 条件表达式:
代码块
if 终止条件:
break
代码块
示例 1:在循环中使用 break
count = 1
while count <= 5:
if count == 3:
break # 当count等于3时,终止循环
print("Count:", count)
count += 1
执行结果:
Count: 1
Count: 2
执行过程解析:
-
count 初始化为 1。
-
第一次循环:count <=5 为真,检查 count 是否为 3,不成立,打印 Count:1,count 增加到 2。
-
第二次循环:count <=5 为真,检查 count 是否为 3,不成立,打印 Count:2,count 增加到 3。
-
第三次循环:count <=5 为真,检查 count 是否为 3,成立,执行 break,循环终止。
示例 2:在用户输入中使用 break
while True:
command = input("请输入命令(输入'exit'退出):")
if command == "exit":
break # 输入'exit'时退出循环
print(f"执行命令:{command}")
执行结果:
请输入命令(输入'exit'退出):hello
执行命令:hello
请输入命令(输入'exit'退出):world
执行命令:world
请输入命令(输入'exit'退出):exit
3.2 continue 语句
continue 语句用于跳过当前循环的剩余代码块,直接开始下一次循环。与 break 不同,continue 不会终止整个循环,只是跳过当前迭代。
语法格式:
while 条件表达式:
代码块
if 跳过条件:
continue
代码块
示例 1:在循环中使用 continue
count = 0
while count < 5:
count += 1
if count == 3:
continue # 当count等于3时,跳过本次循环的剩余代码
print("Count:", count)
执行结果:
Count: 1
Count: 2
Count: 4
Count: 5
执行过程解析:
-
count 初始化为 0。
-
第一次循环:count <5 为真,count 增加到 1,检查 count 是否为 3,不成立,打印 Count:1。
-
第二次循环:count <5 为真,count 增加到 2,检查 count 是否为 3,不成立,打印 Count:2。
-
第三次循环:count <5 为真,count 增加到 3,检查 count 是否为 3,成立,执行 continue,跳过 print 语句。
-
第四次循环:count <5 为真,count 增加到 4,检查 count 是否为 3,不成立,打印 Count:4。
-
第五次循环:count <5 为真,count 增加到 5,检查 count 是否为 3,不成立,打印 Count:5。
-
第六次循环:count <5 为假,循环结束。
示例 2:筛选偶数
number = 0
while number < 10:
number += 1
if number % 2 == 0:
continue # 跳过偶数
print("奇数:", number)
执行结果:
奇数: 1
奇数: 3
奇数: 5
奇数: 7
奇数: 9
3.3 break 和 continue 的区别
break 和 continue 是两种不同的循环控制语句,它们的区别如下:
特性 | break | continue |
---|---|---|
作用 | 终止整个循环 | 跳过当前迭代,继续下一次迭代 |
执行位置 | 通常在条件判断之后 | 通常在条件判断之后 |
对循环的影响 | 立即退出循环,不再执行后续迭代 | 只影响当前迭代,不影响后续迭代 |
适用场景 | 需要提前终止循环的场景 | 需要跳过某些特定情况的场景 |
示例对比:
# 使用break的示例
count = 1
while count <= 5:
if count == 3:
break # 终止循环
print("Count:", count)
count += 1
print("循环结束")
# 使用continue的示例
count = 0
while count < 5:
count += 1
if count == 3:
continue # 跳过当前迭代
print("Count:", count)
print("循环结束")
执行结果对比:
# break示例的输出
Count: 1
Count: 2
循环结束
# continue示例的输出
Count: 1
Count: 2
Count: 4
Count: 5
循环结束
3.4 循环中的 else 子句
在 Python 中,while 循环和 for 循环都可以带有一个可选的 else 子句。这个 else 子句会在循环正常结束(即没有通过 break 语句终止)时执行。
语法格式:
while 条件表达式:
代码块
else:
代码块 # 当循环正常结束时执行
示例 1:使用 else 子句
count = 1
while count <= 5:
print("Count:", count)
count += 1
else:
print("循环正常结束") # 当count增加到6时,条件为假,执行else子句
执行结果:
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
循环正常结束
示例 2:结合 break 使用 else 子句
count = 1
while count <= 5:
if count == 3:
break # 当count等于3时,终止循环
print("Count:", count)
count += 1
else:
print("循环正常结束") # 由于break终止了循环,else子句不会执行
执行结果:
Count: 1
Count: 2
示例 3:搜索特定元素
numbers = [1, 2, 3, 4, 5]
target = 3
index = 0
while index < len(numbers):
if numbers[index] == target:
print(f"找到目标元素{target}在索引{index}处")
break
index += 1
else:
print(f"目标元素{target}未找到")
执行结果:
找到目标元素3在索引2处
更多推荐
所有评论(0)