【李刚-21天通关Python-12】之 循环
一、循环的意义
- 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体
- 当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而结束循环,否则循环将一直执行下去,形成无限循环
二、while 循环
1、while 循环的语法格式:
'''
[init_statements]
while test_expression:
body_statements
[iteration_statements]
'''
2、由于列表和元组的元素都是有索引的,因此程序可通过 while 循环、列表或元组的索引来遍历列表或元组中所有的元素
my_data = ['java', 'swift', 'python', 'kotlin']
i = 0
while i < len.(my_data):
print(my_data[i])
i += 1
# java
# swift
# python
# kotlin
三、for-in 循环
- for-in 循环专门用于遍历范围、列表、元素和字典等可迭代对象包含的元素
- 语法格式如下:
'''
for 变量 in 字符串/范围/集合等
statements
'''
s = 'python'
for c in s:
print(c)
# p
# y
# t
# h
# o
# n
说明:
- for-in 循环中的变量的值受 for-in 循环控制,该常量将会在每次循环开始时被自动赋值,程序对 for-in 循环的循环计数器赋值在语法上是允许的,但没有什么意义,而且非常容易导致错误
- for-in 循环可用于遍历任何可迭代对象。所谓可迭代对象就是该对象包含一个__iter__方法,且该方法的返回值对象具有 next() 方法即可
四、循环中使用else
- Python的循环都可以定义 else 语句块,当循环条件为False时程序会执行 else 语句块
- 循环的else块,是Python的一个很特殊的语法,else 语句块的主要作用是以便生成更优雅的Python代码
for c in 'abc':
print(c)
else:
print("循环结束")
五、嵌套循环
把一个循环放在另一个循环体内,就可形成嵌套循环
- 对于外层循环而言,内层循环就是一条语句
- 当内层循环执行M次,外层循环执行N次,内层循环的循环体一共会执行M×N次
for i in range(10):
j = 0
while j < 20:
print("i: %d, j: %d" % (i, j))
j += 1
六、列表推导式(for表达式)
- for 表达式用于利用其他区间、元组、列表等可迭代对象创建新的列表,语法格式如下:
- [ 表达式 for 循环计数器 in 可迭代对象 ]
r = [i * 2 for i in range(10)]
print(r)
# 计算1~100的和
print(sum([i for i in range(1,101)])) # 5050
七、for表达式与普通for循环的区别
- for 关键字之前定义一个表达式,该表达式通常会包含循环计数器
- for 表达式没有循环体,因此不需要冒号
- for 表达式同样有循环,它会将每次循环执行的值收集起来成为新的列表元素,for 表达式最终返回的是列表
八、使用 break 跳出循环
- 使用 break 可以提前跳出循环,而不是等到循环条件是False时才结束循环
- 带 else 块的 for 循环,如果使用 break 强行中止循环,程序将不会执行 else 块
for i in range(100):
print(i)
if i < 5:
break
else:
print("循环结束")
# 0
# 1
# 2
# 3
# 4
# 5
# 6
九、使用 continue 忽略本次循环
- continue 只会忽略本次循环剩下的语句,接着开始下一次循环,并不会中止循环
- 把 continue 语句放在循环的最后一句,那么这条 continue 语句是没有意义的
for i in range(6):
print(i)
if i > 3:
continue
print("循环第%d次" % i)
# 0
# 循环第0次
# 1
# 循环第1次
# 2
# 循环第2次
# 3
# 循环第3次
# 4
# 5
十、使用 return 结束函数
- return 的作用是结束函数
- 无论 return 处于多深的嵌套循环中,return 总可以结束函数