1. 简介
写程序时, 我们经常需要做重复的工作, 而这部分重复的工作往往可以用循环语句来解决. Python中提供了两种循环语句, for 循环和 while循环.
- 其简易流程图如下:
2. for 循环
2.1 语法
- 作用:
用来遍历可迭代对象的数据元素.可迭代对象是指能依次获取数据元素的对象
可迭代对象包括:
- 字符串: str
- 列表: list
- 元组:tuple
- 字典: dict
- 集合: set
- range函数返回的对象等
- 语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
else和语句块2可以可以省略
- 举例:
s = "ABCDE"
for ch in s:
print("ch-->>",ch)
else:
print("可迭代对象已经不能再提供数据了!")
print("程序结束")
for x in range(4, 0):
print(x)
print("x绑定",x)
2.2 嵌套
for 循环可以进行嵌套。
如:
# 输入一个整数n,打印一个对应的正方形
# 如输入:5
# 打印:
# 1 2 3 4 5
# 1 2 3 4 5
# 1 2 3 4 5
# 1 2 3 4 5
# 1 2 3 4 5
n = int(input("请输入一个整数n:"))
for i in range(1, n+1):
for j in range(1, n+1):
print(j, end=" ")
print()
3. while 循环
3.1 语法
- 作用:根据一定条件,重复地执行一条语句或多条语句
- 语法:
while 真值表达式:
语句块1
else:
语句块2
- 说明:
1、先执行真值表达式1,测试布尔值是否为True
2、如果真值表达式的值为True,则执行语句块1,然后再返回到第一步,重复进行测试
3、如果真值表达式的值为False,则执行else子句中的语句块2,然后结束此while语句,如果没有else子句,则直接结束此while语句的执行
4、else子句部分可以省略(同if类似)
- 举例
# 输入一个整数n,根据这个整数打印n行“hello”
n = int(input("Please input an integer:"))
i = 0
while i < n:
print("hello")
i += 1
print("The end.")
# 输入一个字符或者字符串,并打印出来,直到输入的为字符"y"。
while True:
s = input("请输入:")
if s == "y":
break
print(s)
print("End!")
3.2 注意事项
-
要控制循环的真值表达式的值来防止死循环
-
通常用真值表达式内的循环变量来控制循环条件
-
通常在循环语句块内改变循环变量来控制循环的次数和变量的走向
3.3 循环嵌套
while 循环也可以进行嵌套。
如:
# 输入一个整数,打印指定宽度的正方形
# 如:输入5,打印如下:
# 1 2 3 4 5
# 1 2 3 4 5
# 1 2 3 4 5
# 1 2 3 4 5
# 1 2 3 4 5
n = int(input("请输入一个整数:"))
j = 1
while j <= n:
i = 1
while i <= n:
print(i, end=" ")
i += 1
print()
j += 1
4. 常用于控制循环的几个语句
- continue语句
- 作用:
用于循环语句(while, for语句)中,不再执行本次循环continue之后的语句,重新开始一次新的循环。- 说明:
- 在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次开始执行
- 在while语句中执行continue,将会直接跳转到while语句的真值表达式处重新判断循环条件
- 举例:
# 打印 0, 1, 3
for x in range(4):
if x == 2:
continue
print(x)
print("x绑定", x)
- break语句
- 作用:
用于循环语句(while,for语句)中,用来终止当前循环语句的执行- 说明:
- 当break语句执行后,此循环语句break之后的语句将不再执行
- break语句通常和if语句组合使用
- break语句终止循环时,循环语句的else子句的语句不会被执行
- break语句只能终止当前循环语句的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
- break语句只能用在循环语句(while或for)内部使用
- 举例:
# 打印 0 ~ 30
for x in range(40):
if x == 31:
break
print(x)
print("x绑定", x)