Python3.7知其然知其所以然
while 循环用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。for循环和while循环,两者的相同点在于都能循环做一件重复的事情;不同点在于,for循环是在序列穷尽时停止,while循环是在条件不成立时停止。
11.1 while语句
while循环通过判断条件,确认是否执行语句。条件为True时,执行语句,否则退出循环。语法结构为:
while 判断条件:
执行语句1
执行语句…
# 初始化整数i = 5
while i < 10:
print(i)
i += 1
11.2 循环特用
while在实现通讯服务端等这种功能时,特意设为无限循环,俗称死循环。
# 循环特用while True:
# 初始化通讯
print("等待客户端来连接...")
11.3 嵌套语句
while循环允许在一个循环体里面嵌入另一个循环。语法结构为:
while 判断条件1:
执行语句1
while 判断条件2:
执行语句…
# 定义行变量
row = 1
while row <= 5:
# 定义列变量
col = 1
# 第i行,循环i次
while col <= row:
print("*", end="")
col += 1
# 每打印完1行,换行
print("")
row += 1
11.4 while嵌for
while循环里面可以嵌套for循环。
# 初始化数据
i = 2
while i < 5:
for c in range(5):
print(c)
i += 1
for循环里面可以嵌套while循环。
# 用range()函数生成数列
for c in range(1, 5):
i = 2
while i < 5:
print(i)
i += 1
11.5 跳出循环
Python语言的跳出循环与大多数语言一样,可以使用关键字continue跳出本次循环。
# ---continue语句----
def f1():
i = 5
while i < 10:
if i % 2 == 0:
continue
# if条件为True的,跳过continue语句下的表达式。
i += 1
print(i)
f1()
或者使用break跳出整个while循环。
# ---break语句----
def f1():
i = 5
while i < 10:
if i % 8 == 0:
break
# if条件为True的,跳过continue语句下的表达式。
i += 1
print(i)
f1()
还有return语法,会跳出while循环。
# ---return语句----
def f1():
i = 5
while i < 10:
if i % 6 == 0:
return
# if条件为True的,跳过continue语句下的表达式。i += 1
print(i)
f1()
11.6 while-else
如果想在循环正常(非break 跳出)执行完,需要执行一些其他动作时,可在后面添加else语句。除了else外,还有一种特殊情况,就是会出现一个语句体什么也不做的情况,这时用pass语句进行占位。它是空语句,什么都不做,只要是保持程序结构的完整性。
正常退出while循环,会执行else里面的内容。
# 初始化数据
i = 5
while i < 10:
if i % 2 == 0:
pass # pass不做任何操作
i += 1
print(i)
else:
print("循环完成")
通过break非正常退出,不会执行else里面的内容。
# 初始化数据
i = 2
while i < 5:
if i % 4 == 0:
break # 退出整个for循环
i += 1
print(i)
else:
print("这里不执行")