循环¶
计算机非常擅长的事情是大量重复的事情,而人类是非常讨厌反复重复的事情。比如说让你从1写到1000,你可能就要怀疑人生了,写这个有什么用,但是对于计算机来说,这么简单的任务,不要一秒钟就跟输出来,而且还能花式输出。
计算机处理这些大量重复事情时需要用到循环。比如老师罚你抄写李白的《望庐山瀑布》一百遍。
日照香炉生紫烟,遥看瀑布挂前川。
飞流直下三千尺,疑是银河落九天。
这个时候一个循环语句就能秒杀。循环语句分为for
语句和while
语句。
poem = """
日照香炉生紫烟,遥看瀑布挂前川。
飞流直下三千尺,疑是银河落九天。
"""
for i in range(100):
print(poem)
# 改造成while
i = 0
while i < 100:
print(poem)
i = i + 1
for
循环强制循环,很容确定循环的次数。比如我们就要循环100次,使用range生成0-99的序列,也就是100个数,然后用for循环遍历这100个数的序列,从而达到了循环执行print(poem)
一百次的效果。而while
循环特点是**条件循环**,执行的条件是i < 100
,当不满足这个条件以后,循环将会跳出。
在很多时候这两种循环是可以转化的,不过还是得看具体情况,读者不必担心,这里不是考试,不会强迫相互改写。
动手题
读者可以考虑输出9x9的乘法表
跳出循环¶
跳出循环适用于for和while循环,不过跳出用两种方式。
1. 跳出当前循环,继续执行下一次循环。用continue
.
2. 跳出循环,不再执行循环。用break
比如我们输出0-9的数字,一种情况是不输出7,也就是跳过7,直接输出8和9.另外一种就是碰到7以后不再输出了。我们用for循环分别来实现这两种情况。
for i in range(10):
if i == 7:
continue # 跳出当前循环,继续下一次
print(i)
0
1
2
3
4
5
6
8
9
for i in range(10):
if i == 7:
break # 结束循环
print(i)
输出结果为:
0
1
2
3
4
5
6
补充¶
其实for
和while
循环是可以配合else
的,当循环正常执行完毕,会执行else
语句,如果碰到break
跳出了循环则不会执行else
语句。
for item in container:
if search_something(item):
# Found it!
process(item)
break
else:
# Didn't find anything..
not_found_in_container()
for i in range(10):
if i == 7:
print("找到数字7了")
break
else:
print("循环结束,没找到")
# 找到数字7了
总结¶
本节主要介绍了循环语句,for
循环和while
循环。补充了循环可以与else搭配使用。在编程的时候,循环用得非常多,这个是计算机的专长,需要多加练习。