Python中的循环语句
一. 目标
- 了解循环
- while语法【重点】
- while应用
- break和continue
- while循环嵌套【重点】
- while循环嵌套的使用【重点】
- for循环
二. 循环的定义及作用
在程序中需要重复的执⾏⼀个功能的时候,⽤循环来实现。
- while和if的⽤法基本类似,区别在于:if 条件成⽴,则执⾏⼀次;while 条件成⽴,则重复执⾏,直到条件不成⽴为⽌。
- ⼀般情况下,需要多次重复执⾏的代码,都可以⽤循环的⽅式来完成
- 循环不是必须要使⽤的,但是为了提⾼代码的重复使⽤率,所以有经验的开发者都会采⽤循环
循环的作⽤:让代码更⾼效的重复执⾏
三. while循环
在程序中需要重复的执行一个功能的时候,用循环来实现
3.1 while循环的格式
while 条件:
条件满⾜时,做的事情1
条件满⾜时,做的事情2
条件满⾜时,做的事情3
...(省略)...i = 1
while i <= 5:
print("进入互联网")
i += 1 # i = i + 13.2 计数器的书写习惯
上面循环中变量i称为循环变量,也可以称为计数器,有以下需要作用和需要注意的地方。
1.一般计数器起始值为0
2.计数器的作用是控制循环的遍数,但是一定要记得在程序钟添加让计数器发生变化的代码
3.让计数器发生变化的代码一定要放在while循环控制的代码块钟,否则不起作用
i = 0
while i<10:
print('⼈⽣苦短,我⽤python')
i+=1四. while循环应用
4.1 计算1~100的累积和(包含1和100)
分析:1-100的累加和,即1 + 2 + 3 + 4 +….,即前两个数字的相加结果
参考代码如下:
i = 1
sum = 0
while i <= 100:
sum = sum + i
i += 1
print(f"1-100的累加和是{sum}")4.2 计算1~100之间偶数的累积和(包含1和100)
分析:1-100的偶数和,即 2 + 4 + 6 + 8…,得到偶数的⽅法如下:
- 偶数即是和2取余结果为0的数字,可以加⼊条件语句判断是否为偶数,为偶数则累加
- 初始值为0 / 2 , 计数器每次累加2
参考代码如下:
⽅法⼀:条件判断和2取余数则累加
# 分析:1-100的偶数和,即 2 + 4 + 6 + 8....,得到偶数的和
"""
1. 准备累加的数字 开始1 结束100 增量1
2. 准备保存结果的变量 result
3. 循环加法运算 -- 如果是偶数才进行加法运算
4. 输出结果
5. 验证结果
"""
i = 1
result = 0
while i <= 100:
# 条件语句 -- if
if i % 2 == 0:
# 加法运算
result += i
i += 1
# 输出结果
print(result)方法二:计数器控制
# 计数器控制 让偶数累加
"""
1. 准备累加的数据
2. 准备存储结果的变量
3. 循环计算
4. 输出结果
"""
i = 2
result1 = 0
while i <= 100:
result1 += 1
i += 2
print(result1)4.3 循环的注意事项
如果在使⽤while循环的时候,计数器没有发⽣改变,那么计数器的值便⼀直是初始值,此时while后⾯的条件永远成⽴,那么循环会⼀直⽆限执⾏下去,⽆法终⽌,这种循环也称为死循环。
五. break和continue
break和continue是循环中满⾜⼀定条件退出循环的两种不同⽅式。
举例:⼀共吃5个苹果,吃完第⼀个,吃第⼆个…,这⾥"吃苹果"的动作是不是重复执⾏?
情况⼀:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第五个苹果,即是吃苹果的动作停⽌,这⾥就是break控制循环流程,即终⽌此循环。
情况⼆:如果吃的过程中,吃到第三个吃出⼀个⼤⾍⼦…,是不是这个苹果就不吃了,开始吃第四个苹果,这⾥就是continue控制循环流程,即退出当前⼀次循环继⽽执⾏下一次循环代码。
5.1 break
在实际应⽤中,如果循环满⾜了⼀定的条件,没必要接着往下运⾏了,那么这个时候就需要⽤到break退出循环。
需求:循环吃5个苹果,吃完第3个吃饱了,第4个和5不吃了(不执行)
代码实现:
# 需求:循环吃5个苹果,吃完第3个吃饱了,第4个和5不吃了(不执行)
apple = 0
while apple <= 5:
# 条件:吃到第3个不吃了
if apple == 4:
print(f"吃饱了,不吃了")
break
print(f"吃了第{apple}个苹果")
apple += 1需求:⽤while循环输出1-100的数字,如果这个数字等于88,那就退出循环,停⽌输出
# 需求:⽤while循环输出1-100的数字,如果这个数字等于88,那就退出循环,停⽌输出
num = 0
while num <= 100:
if num == 88:
print(num)
break
num += 1需求:找到第⼀个5位数回⽂数
# 需求:找到第⼀个5位数回⽂数
i = 10000
while i < 100000:
# 万位
wan = i // 10000
# 千位
thousand = i % 10000 // 1000
# ⼗位
ten = i % 100 // 10
# 个位
single = i % 10
# 万位和个位相同并且千位和⼗位相同
if wan == single and thousand == ten:
print(i)
break
i += 15.2 continue
在实际应⽤中,如果循环满⾜了⼀定的条件,当前的代码没必要接着往下运⾏了,需要跳出本次循环进⼊到下⼀个循环,那么就需要⽤到continue
需求:吃5个苹果 – 循环; 吃到第3个吃出⼀个⾍⼦,第三个不吃了,没吃饱,继续吃下一个苹果。
代码实现:
# continue
# 需求:吃5个苹果 -- 循环; 吃到第3个吃出⼀个⾍⼦,第三个不吃了,没吃饱,继续吃下一个苹果。
i = 1
while i <= 5:
if i == 3:
print("这个苹果坏了,不能吃")
i += 1
continue
print(f"吃了第{i}个苹果")
i += 1六. while循环的嵌套
6.1 while嵌套的语法
while 条件 1:
条件1满足时,做的事情1
条件1满足时,做的事情2
条件1满足时,做的事情3
...(省略)...
while 条件 2:
条件2满足时,做的事情1
条件2满⾜时,做的事情2
条件2满⾜时,做的事情3
...(省略)...总结:所谓while循环嵌套,就是⼀个while⾥⾯嵌套⼀个while的写 法,每个while和之前的基础语法是相同的。
6.2 while嵌套流程图

6.3 while嵌套循环案例
案例一:打印五行五个小星星
需求:打印如下图形
*****
*****
*****
*****
*****代码示例:
# 打印五行五个小星星
j = 0
while j < 5:
# 一行星星的打印
i = 0
while i < 5:
# 一行内的星星不能换行,取消print默认结束符\n
print("*", end="")
i += 1
# 每行结束要换行,这里借助一个空的print,利用print默认结束符换行
print()
j += 1案例二:打印三角形星号
需求:打印如下图形
*****
****
***
**
*代码示例:
分析:一行输出星星的个数和行号是相等的复执行5次实现打印5行。每行:重复打印行号数字个星号,将打印行星号的命令重
# 打印三角形
j = 5
while j > 0:
# 一行星星的打印
i = 1
# i表示每行里面的星星的个数,这个数字要和行号相等所以i要和j联动
while i <= j:
print("*", end="")
i += 1
# 一行星星结束;换行显示下一行
print()
j -= 1案例三:打印九九乘法表
代码示例:
# 九九乘法表
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
print(f"{j} * {i} = {j * i}\t", end="")
j += 1
i += 1
print()七. for循环
像while循环⼀样,for可以完成循环的功能。
在Python中for循环可以遍历任何序列的项⽬,如⼀个列表或者⼀个字符串等。
7.1 for循环的语法
for 临时变量 in 列表或者字符串等可迭代对象:
循环满⾜条件时执⾏的代码语法中的可迭代对象,严格来说,称之为:序列类型
序列类型指,其内容可以一个个依次取出的类型,包括:字符串、列表、元组、等
7.2 遍历字符串中每一个元素
str = "人工智能"
for i in str:
print(i)7.3 range语句
for循环语句,本质上是遍历:序列类型
range语法1:
range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0,1,2,3,4]range语法2:
range(num1, num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
如,range(5, 10)取得的数据是:[5,6,7,8,9]range语法3:
range(num1, num2, step)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
如,range(5,10,2)取得的数据是:[5,7,9]代码示例:
# range语法1
print("------------range语法1------------")
for x in range(5):
print(x)
print("------------range语法2------------")
# range语法2
for x in range(5, 10): # 从5开始到10结束,不包含10的一个数字序列
print(x)
print("------------range语法3------------")
# range语法3
for x in range(5, 10, 2): # 从5开始到10结束,不包含10,步长为2的一个数字序列,step默认为1
print(x)案例:有几个偶数
定义一个数字变量num,内容随意
并使用range()语句,获取从1到num的序列,使用for循环遍历它
在遍历的过程中,统计偶数出现的次数
代码示例:
# 案例:有几个偶数
# 定义一个变量接收偶数出现的次数
count = 0
for x in range(1, 100):
if x % 2 == 0:
count += 1
print(f"1-100(不包含100)中偶数出现了{count}次")7.4 for循环临时变量作用域
for i in range(5):
print(i)
print(i)
如果想在for循环外部访问临时变量,需要在for循环之前把临时变量定义好
i = 0
for i in range(5):
print(i)
print(i)临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部
如果在for循环外部访问临时变量:
- 实际上是可以访问到的
- 在编程规范上,是不允许、不建议这么做的
7.5 for循环的嵌套使用
代码演示:
# 向小黄表白100天
# 每天送10多玫瑰花
i = 0
for i in range(1, 101):
print(f"今天是表白的第{i}天,小黄我喜欢你!")
for j in range (1, 11):
print(f"送的第{j}朵玫瑰花")
print(f"第{i}天,表白成功")for循环和while循环可以相互嵌套使用

7.6 使用for循环打印九九乘法表
# 通过外层循环控制行数
for i in range(1, 10):
# 通过内层循环控制每一行的数据
for j in range(1, i + 1):
print(f"{j} * {i} = {j * i}\t", end="")
# 外层循环可以通过print输出一个回车符
print()7.7 continue和break
continue


代码示例:
# 代码演示continue
for i in range(1, 6):
print("语句1")
continue
print("语句2")# 嵌套中的continue
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
continue
print("语句3")
print("语句4")break

代码示例:
# 代码演示break
for i in range(1, 101):
print("语句1")
break
print("语句2")
代码示例:
# 嵌套循环演示break
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
break
print("语句3")
print("语句4")7.8 for循环综合案例

代码示例:
# 某公司,账户余额有1W元,给20名员工发工资
# 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
# 领工资时,财务判断员工的绩效分(1-10) (随机生成),如果低于5,不发工资,换下一位
# 如果工资发完了,结束发工资。
# 定义账户余额变量
money = 10000
# for循环对员工发放工资
for i in range(1, 21):
import random
score = random.randint(1, 10)
if score < 5:
print(f"员工{i}绩效是{score},不合格,不发工资")
# continue跳过发工资
continue
if money >= 1000:
money -= 1000
print(f"员工{i},领取工资1000元,公司账户余额{money}元")
else:
print(f"员工{i}绩效符合,但当前余额还剩余{money}元,不足以发放工资")
# break结束发放
break
















