一段重复执行的语句,称之为循环语句
循环语句有两种:while 循环和 for 循环
while循环
用法:while后面的布尔表达式如果为真,则一直执行循环内的语句,直到布尔表达式的值为假,循环结束
i = 0
while i <= 5:
print(i)
i += 1#i自增长1
#一开始i=0,代码每执行一次,i增长1,
#直到i<=5为False,循环结束。
for循环
range函数
range函数是使用for循环时常用的函数
range(m,n,s)
- m:起始位置,缺省值为0,可省略
- n:终止位置,不能省略
- s:步长,缺省值为1,可省略
取值时包含m,不包含n
s为正数则从左到右取,为负数则从右到左取
可以看出来,range函数的用法和切片的用法非常相似(完全相同)
用法
- for循环的起始值不写时缺省值为0
- 步长不写时缺省值为1
for i in range(5):#省略了初始值和步长
print(i)
>>>
0
1
2
3
4
- 省略步长,改变起始位置,从2开始
for i in range(2,5):#初始值为2,省略步长
print(i)
>>>
2
3
4
- 起始位置为0,步长为2
for i in range(0,5,2):
print(i)
>>>
0
2
4
- 注意
当我们不省略步长时,哪怕初始值为0也不能省略,否则终止值会被认作起始值,步长会被认作终止值
遍历列表
- 直接遍历
list1=['关羽','张飞','赵云','马超','黄忠']
for name in list1:
print(name)
>>>
关羽
张飞
赵云
马超
黄忠
- 使用下标方式遍历
list1=['关羽','张飞','赵云','马超','黄忠']
for i in range(len(list1)):
print(list1[i])
#len(list1)=5,所以i的值依次为0,1,2,3,4
#然后通过list[i]依次获取对应下标的内容
>>>
关羽
张飞
赵云
马超
黄忠
break&continue
- break 终止循环
for i in range(1,11):
if i==5:
#当i的值为5时,终止循环且循环内后续代码不再执行
break #终止循环
print(i)
>>>
1
2
3
4
然后看一种类似情况:print没有缩进
for i in range(1,11):
if i==5:#当i的值为5时
break #终止循环且循环内后续代码不再执行
print(i)
>>>
5
#当循环内i的值为5时,终止循环
#但是print并不在循环内,此时i的值为5,所以输出5
- continue 跳出当次循环
for i in range(1,5):
if i==3:#当i的值为3时
continue #只跳出当次循环,代码继续执行
print(i)
>>>
1
2
4
#当代码运行到i的值为3时,跳出了当前循环,没有执行后边的print(i),所有输出结果没有3
- 循环语句也可以带一个else语句
当循环中没有出现break,则循环结束时,运行一次else中的语句
for i in range(1,5):
if i == 6:
break
print(i)
else:
print('循环运行完毕')
>>>
1
2
3
4
循环运行完毕
循环中出现break,则else语句不运行
for i in range(1,5):
if i == 3:
break
print(i)
else:
print('循环运行完毕')
>>>
1
2