学习目标:
- while循环
- for循环
学习内容:
1. while循环
1.1 死循环和效率问题
# 死循环1
a = 0
while a < 5:
print(a)
死循环1中有print(),属于IO操作的output操作,cpu能够有休息时间;
若开发中出现这样的死循环,cpu有休息时间所以对整个程序没有太大影响;
# 死循环2
while True:
a = input('a is:')
print(a)
死循环2中有input()和print()操作,属于IO操作的input和output操作,cpu也有休息时间;
若开发中出现这样的死循环,cpu有休息时间所以对整个程序没有太大影响;
# 死循环3
while True:
1 + 1
死循环3无任何IO操作,cpu也有休息时间,这种纯计算无IO的死循环有害;
1.2 结束while循环的方式
- 通过指向False变量,结束循环;
tag = True
while tag:
代码块
tag = False
- 通过break来结束该while循环;
while True:
代码块
break
- 通过continue来结束当次循环,直接进入下一次循环;
while a < 10:
a += 1
if a % 2 == 1:
continue
print(a)
- while+else结束循环;
while True:
代码块
else:
print('else包含的代码会在while循环被break打断时运行,若while循环正常结束则不会运行else中的代码块。')
for循环
2.1 for循环的形式
理论上for循环可以做的事情,while循环都可以做,但是在循环取值(遍历取值)更简洁;
for 变量名 in 可迭代对象: # 可迭代对象:列表、字典、字符串、元组、集合
代码块
代码块
for循环在遍历字符串时空格也作为一个字符被取出
for + break: 退出该循环,只有break可以跳出for循环
for + continue: 退出当前循环
for + break + else结束循环的方式与while + break + else结束循环的方式一样;
2.2 for循环与while循环的异同
相同之处:都是循环,for循环可以干的事,while循环也可以干;
不同之处:while循环称之为条件循环,循环次数取决于条件何时变为假;
for循环为取值循环,循环次数取决于in后包含的值的个数;