跳转至

循环

计算机非常擅长的事情是大量重复的事情,而人类是非常讨厌反复重复的事情。比如说让你从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

补充

其实forwhile循环是可以配合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()
我们还是继续看上面的例子,找到数字7以后循环结束。

for i in range(10):
    if i == 7:
        print("找到数字7了")
        break
else:
    print("循环结束,没找到")

# 找到数字7了
修改上面的break让循环执行完,则else语句也会被执行。

总结

本节主要介绍了循环语句,for循环和while循环。补充了循环可以与else搭配使用。在编程的时候,循环用得非常多,这个是计算机的专长,需要多加练习。

评论