1. 什么是循环
定义:循环是一种控制流语句,它允许你重复执行一段代码块直到满足某个条件为止。
2. 循环的分类
在Python中,提供的循环分为两大类:while循环与for循环
-
对于循环次数已知的情况,建议使用while循环
-
对于循环次数未知的情况,建议使用for循环
3. while循环结构
使用语法格式如下所示:
# ① 定义一个计数器(初始化一个计数器)
i = 0 或 1
# ② 编写while循环结构
while 循环条件(判断计数器是否达到了目标位置):
循环体1
循环体2
...
# ③ 在循环内部更新计数器
i = i + 1 或 i += 1
对以上格式说明:
-
在计算机程序中,计数器大部分都是从0开始的。
-
循环条件:循环条件(条件表达式)为真的情况下,会执行相应的代码块。并且只要条件表达式为真,while 就会一直重复执行那段代码块(或叫循环体)。注意:一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环。
-
循环体:指的是具有相同缩进格式(缩进量)的多行代码。
-
总结:while循环三步走
① 初始化计数器
② 编写循环条件(判断计数器是否达到了目标位置)
③ 在循环内部更新计数器
例:
# ① 定义计数器(初始化计数器)
i = 0
j = 5
# ② 编写while循环结构
while i < j: #(判断计数器是否达到了目标位置):
print("欢迎来到一笑的博客!")
# 在循环内部更新计数器
i = i + 1
运行结果:
注意:在while中一定要注意缩进的问题
例:
i = 1
result = 0
while i <= 100:
if i % 2 == 0:
result += i
i += 1
print(f'1~100之间所有偶数的和:{result}')
实例中i += 1 由于缩进了一个Tab键导致整个循环陷入了死循环。
修改:
i = 1
result = 0
while i <= 100:
if i % 2 == 0:
result += i
i += 1
print(f'1~100之间所有偶数的和:{result}')
运行结果:
3.1 while死循环
死循环顾名思义,就是没有终止的循环结果,会一直运行下去。
在python中我们可以使用while循环语句来主动模拟一个死循环
while True:
print('hello!')
可以使用time模块的内置方法来延缓循环的速度(按自己的需求来)
import time
while True:
print('hello!')
time.sleep(2)
3.2 while循环嵌套
所谓的while嵌套循环就是在while循环的基础上,在加入一层while循环,就组成了while嵌套循环。
# 第一步:初始化外层循环计数器
i = 1
# 第二步:编写外层循环的条件
while i <= 3:
# 第四步:初始化内层循环计数器
j = 1
# 第五步:编写内层循环的条件
while j <= 3:
循环体代码
# 第六步:更新内层循环计数器
j += 1
# 第三步:更新外层循环计数器
i += 1
例(九九乘法表):
# 初始化外层循环计数器
i = 1
# 编写外层的循环条件
while i <= 9:
# 初始化内层循环计数器
j = 1
# 编写内层的循环条件
while j <= i:
print(f'{j} x {i} = {i * j}', end=' ')
# 更新内层循环的计数器
j += 1
print('')
# 更新外层循环计数器
i += 1
运行结果:
4. for循环结构
for 循环,通常用于遍历序列类型(字符串、列表、元组、集合、字典),逐个获取序列中的各个元素。
for循环功能非常强大,可以自动判断序列的长度,长度为多少,则for循环就循环多少次。
每次循环时,系统会自动将序列中的每个元素赋值给变量i,赋值完成后,for循环内部会自动更新计数器,向后移动一位,继续循环,直至元素全部循环结束。
使用语法格式如下所示:
for 迭代变量 in 字符串或列表或元组或集合或字典:
代码块
对以上格式说明,
-
迭代变量:用于存放从序列类型变量中读取出来的元素。
-
代码块:又叫循环体,指的是具有相同缩进格式(缩进量)的多行代码。
4.1 range()函数
Python2版本中 range() 函数返回的是列表,
而在Python3版本中 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。(可以简单的将其理解为一个序列结构)
主要作用:用于生成一段连续的内容,从0到9
基本语法格式:
range(stop)
range(start, stop[, step])
说明:
-
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
-
stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有 5;
-
step:步长,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)。
例:
for i in range(5): #循环5次
print(i)
4.2 for循环嵌套
for循环嵌套,指的是一个for循环里面嵌套另外一个for循环的写法。
当循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环。
基本语法格式:
# 外层循环
for i in 序列1:
# 内层循环
for j in 序列2:
循环体
例(九九乘法表):
for i in range(1, 10):
for j in range(1, i+1):
print(f'{j} x {i} = {i * j}', end=' ')
# 打印换行符
print('')
运行结果:
5. break和continue关键字
在Python循环中,经常会遇到两个常见的关键词:break 与 continue
break:代表终止整个循环结构
continue:代表中止当前本次循环,继续下一次循环
5.1 break语句
在while循环中
例:
# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
# 当变量i == 3的时候,终止循环
if i == 3:
print('我已经吃饱了,实在吃不下了...')
break
# 正在吃第几个饭
print(f'正在吃第{i}碗饭')
# 更新计数器
i += 1
运行结果:
在for循环中
# 编写循环条件
for i in range(1,5):
# 当变量i == 3的时候,中止当前循环,继续下一次循环
if i == 3:
# 手工更新计数器(非常重要) 不然会出现死循环
i += 1
print('吃饱了,吃不下了...')
break
print(f'正在吃第{i}碗饭')
# 更新计数器
i += 1
运行结果:
5.2 continue语句
在while循环中
例:
# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
# 当变量i == 3的时候,中止当前循环,继续下一次循环
if i == 3:
# 手工更新计数器(非常重要) 不然会出现死循环
i += 1
print('掉进来一直虫子,这碗不吃了...')
continue
print(f'正在吃第{i}碗饭')
# 更新计数器
i += 1
运行结果:
在for循环中
# 编写循环条件
for i in range(1,5):
# 当变量i == 3的时候,中止当前循环,继续下一次循环
if i == 3:
# 手工更新计数器(非常重要) 不然会出现死循环
i += 1
print('掉进来一直虫子,这碗不吃了...')
continue
print(f'正在吃第{i}碗饭')
# 更新计数器
i += 1
运行结果:
6. 小结
循环的应用范围非常宽广,基本会融入到各个项目中,while循环与for循环的灵活使用可以大大减轻我们的代码工作量,达到事半功倍的效果。