Python基础语法-循环语句(for)
第一章 Python基础语法
第十节 循环语句(for)
学习目标
1.for 循环的基础语法
2.range()函数
3.countinue和break
4.循环语句的综合案例练习题
一、for 循环的基本语法与序列遍历
1. for 循环基本语法
除了while循环语句外,Python同样提供了for循环语句
两者能完成的功能基本差不多,但仍有一些区别:
- while 循环的条件是自定义的,自行控制循环条件
- for 循环是一种“轮询”机制,是对一批内容进行“逐个处理”
for循环是一种功能强大且灵活的循环结构,主要用于遍历各种可迭代对象,如列表、元组、字符串、字典等。
它的基本语法如下:

这里的 “变量” 会依次取 “可迭代对象” 中的每一个元素,在每次循环中,“循环体语句” 会针对当前元素执行。
2.for 循环序列遍历
for 循环遍历字符串,将字符串中的每个字符依次取出。
word = "python"
for char in word:
print(char)
在这个例子中,for循环会依次将字符串word中的每个字符赋值给变量char,然后打印出来,最终输出python的每个字符,每个字符占一行。
运行结果:

3.for 循环的嵌套使用
- 同 while 一样,for循环也支持嵌套使用,
- 同样需要注意缩进,
- for循环和while循环可以相互嵌套使用
4.for 循环的变量作用域
回看 for 循环的语法,我们会发现,将从数据集中取出来的数据赋值给的变量是临时变量;
为什么是临时变量呢?
实际上,在编程规范中,作用范围(作用域),只限定在for循环内部
如果在for循环外部访问临时变量:
实际上是可以访问到的,但是在编程规范上,是不允许、不建议这么做的
这种限定是编程规范的限定,而非强制限定
不遵守也能正常运行,但是不建议这样做
如需访问临时变量,可以预先在循环外定义它
二、range() 函数
在Python中,所谓待处理数据集,严格来说,称之为:序列类型
序列类型指,其内容可以一个个依次取出的一种类型,包括:
- 字符串
- 列表
- 元组
- 字典
- 等
目前我们只学习了字符串类型,其余类型在后续我们会详细介绍它们。
所以for 循环语句,本质上是遍历:序列类型
1.语法格式1-range(num)
获取一个从0开始,到num结束的数字序列,但是不包含num本身
如:range(5)取得的数据是:[0,1,2,3,4]
for i in range(5):
print(i)
运行结果:

2.语法格式2-range(num1, num2)
获得一个从num1开始,到num2结束的数字序列,但不包含num2本身
如,range(5 ,10)取得的数据是:[5,6,7,8,9]
for i in range(5, 10)
print(i)
运行结果:

3.语法格式3-range(num1, num2, step)
获得一个从num1开始,到num2结束的数字序列,但不包含num2本身
数字之间的步长,以step为准(step默认为1)
如,range(5, 10, 2)取得的数据是:[5,7,9]
for i in range(5, 10, 2)
print(i)
运行结果:

range()函数在很多场景下都非常有用,比如需要按照一定规律生成数字序列来控制循环次数,或者生成索引来访问列表、字符串等可迭代对象的元素时,它都能发挥重要作用。
三、continue和break
1.break语句
break语句的作用就像是给循环踩了一脚紧急刹车,它用于立即终止当前所在的循环,跳出循环体。一旦break语句被执行,循环将不再继续,程序会直接跳转到循环体后面的代码继续执行。
在实际编程中,break语句常用于在循环中查找特定元素的场景。例如,我们有一个存储学生成绩的列表,想要查找是否有成绩大于 90 分的学生,如果找到了就停止查找:
scores = [85, 78, 92, 88, 95]
for score in scores:
if score > 90:
print("找到了成绩大于90分的学生")
break
else:
print("没有找到成绩大于90分的学生")
在这个例子中,当for循环遍历到scores列表中的 92 时,条件score > 90成立,break语句被执行,循环立即终止,程序输出 “找到了成绩大于 90 分的学生”。如果循环正常结束(即没有找到成绩大于 90 分的学生),则会执行else子句中的代码,输出 “没有找到成绩大于 90 分的学生”。
需要注意的是,break语句只能终止它所在的那一层循环。如果是嵌套循环,break语句只会影响内层循环,而不会影响外层循环。例如:
for i in range(3):
for j in range(5):
if j == 3:
break
print(f"i: {i}, j: {j}")
在这个嵌套循环中,当内层循环的j等于 3 时,break语句被执行,内层循环终止,但外层循环会继续执行
运行结果:

2. continue语句
continue语句与break语句不同,它不是终止整个循环,而是跳过当前循环的剩余语句,直接进入下一轮循环。也就是说,当continue语句被执行时,本次循环中continue语句后面的代码将不会被执行,程序会直接跳转到循环的开头,判断是否继续执行下一轮循环。
continue语句在需要过滤某些元素的场景中非常有用。比如,我们想要打印 1 到 10 之间的奇数,可以使用continue语句跳过偶数:
for num in range(1, 11):
if num % 2 == 0:
continue
print(num)
运行结果:

当num为偶数时,条件num % 2 == 0成立,continue语句被执行,本次循环中print(num)语句不会被执行,程序直接进入下一轮循环。只有当num为奇数时,才会执行print(num)语句,输出奇数。
同样,continue语句也只对它所在的那一层循环起作用。在嵌套循环中,continue语句只会影响内层循环的当前迭代,而不会影响外层循环。例如:
for i in range(3):
for j in range(5):
if j == 2:
continue
print(f"i: {i}, j: {j}")
在这个嵌套循环中,当内层循环的j等于 2 时,continue语句被执行,内层循环本次迭代中print(f"i: {i}, j: {j}")语句不会被执行,直接进入下一轮内层循环,而外层循环不受影响,
运行结果:

四、综合案例练习题
某公司,账户余额有1W元,给20名员工发工资
- 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
- 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
- 如果工资发完了,结束发工资

提示: - 使用循环对员工依次发放工资
- continue用于跳过员工,break直接结束发工资
- 随机数random
下一节
初识函数
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)