目录
目标
在之前的博文中,我们已经学习了计算机程序的三大语句结构中的两个——顺序和选择。
顺序结构是指计算机执行程序的步骤是从上到下依次执行;选择结构是指条件判断。
从今天开始,我们要学习第三个结构——循环。
循环
在日常生活中,循环随处可见。例如,我们要围着操场跑 5 圈,跑圈这个行为就重复了 5 次,也就是循环了 5 次。
在编程中,该如何理解“循环”的概念呢?
定义:循环是计算机程序的三大语句结构之一。它是在满足条件的情况下,反复执行某一段代码的计算过程。
隐喻:就像钟表上的指针,一圈一圈的循环。
假设,现在我们需要输出以下列表中的每个元素,你会怎么做呢?numberList = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
没错,我们可以通过索引,将列表中的元素一个一个的输出。
如果列表中的元素不止五项,而是几十项,甚至是几百项,我们还要大量重复编写print() 和列表索引么?这可太麻烦了。
接下来,我们试着用【循环】简化这段代码。
参考代码:
numberList = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
for number in numberList:
print(number)
运行结果:
原本需要编写 10 行的代码,现在使用【循环】后,编写方便了很多。在 Python 中,循环语句有两类:for 循环和 while 循环
接下来,让我们一起学习 for 循环的结构。
for循环
这三行代码使用了 for 循环将列表 numberList 里面的所有元素全部输出出来。
for
使用关键字for,表明我们要在这里开始执行“for循环“的代码结构。
in
使用关键字in,与for搭配,表明我们要把in后面列表里面的数据元素赋值给前面的变量。
变量
表示一个变量,在 for 循环里面用来存储列表中的元素。在本例代码中,列表 numberList 中有 6 个元素,变量 number 会被赋值 6 次。
列表
列表中里面的元素会被分别赋值给变量,直到最后一个元素完成赋值,循环才结束。
冒号:
循环语句的固定格式,表明接下来缩进的代码块是每次循环需要执行的。
缩进
同样缩进的代码就是一个代码块,在每次循环中都要执行。在这里,建议缩进四个空格,和 if 语句类型的缩进一样,保持同一种代码风格。
循环内
循环内的代码块,直到列表 numberList 中的元素被全部赋值完,循环才结束。在本例中,由于列表 numberList 中的元素有 6 个,print()就要执行 6 次。
执行顺序
当程序执行完 for 循环后,如果同一层级(缩进一致)还有代码未执行,则按照顺序,继续自上而下执行。
本例中,第2行和第3行的循环,执行 6 次以后,列表 numberList 中所有元素都被访问完了,for 循环结束。
变量 number 被赋值 6 次,循环结束后,变量 number 的值为 60。
程序继续执行下面和 for 循环处于同一层级代码,输出变量 number,在运行结果中就输出了 60。
遍历
for 循环的灵活之处在于,它会根据列表中的元素个数,自动调节循环的次数。也就是说,for 循环能自动遍历一个列表里面的所有元素。
定义:遍历是指通过某种顺序对一个数据结构中的所有元素进行访问。
隐喻:遍历就像点名,需要有顺序地对所有成员进行一次“查询”。
遍历元组和字符串
for循环不仅可以遍历列表,还可以遍历字典、元组、甚至字符串等数据结构。遍历元组和字符串与遍历列表的代码几乎一样,也是逐个获取元组或字符串的每个字符。
遍历字典
for 循环遍历字典稍微有一些区别。接下来,我们就来学习 for 循环遍历字典。字典是键值对的组合,那么对字典的遍历就包含【键,值,键和值】三种情况。
遍历字典的键
for 循环遍历字典的键,有两种方法可以使用:
1. for 循环遍历字典;
这个方法和 for 循环遍历列表的格式类似。
2. for循环遍历字典中的所有键;
使用 for 循环遍历 dict.keys(),将字典中的键赋值给变量,再通过 print() 输出变量。
遍历字典的值
遍历字典的值,我们可以通过查字典的方式,也就是通过字典的键找到对应指定的值。
首先使用 for 循环遍历字典,将键赋值给变量,通过dict[键]的方式找到对应的值,并赋值给新的变量。
接着使用 print() 输出这个变量,即可遍历字典的值。
遍历字典的键和值
刚才我们使用 for 循环遍历字典的键和字典的值,如果想要同时输出字典的键和值,该怎么办呢?
这时,我们可以在循环内部分别输出字典的键和对应的值。注意,在 for 循环中,一次循环会把循环内的代码全部执行完后,再开始下一次循环。
在本例中,for 循环遍历字典productItems,在第一次循环中,变量 key 被赋值为"口香糖"。
进入循环中,第3行代码获取到"口香糖"对应的值 15,并赋值给变量 value,在第4行和第5行分别输出"口香糖"和15。
接着进入第二次循环,变量 key 被赋值为"可乐",就这样执行完循环内的代码,再开始下一次循环,直到循环结束。
Debug
现在我们就学习完了 for 循环遍历列表和字典,同学们在刚使用 for 循环时,最容易出现以下两种错误:
1. 语法错误;
for循环中的冒号遗漏,是常见的错误。冒号是 for 循环的固定格式。
2. 缩进错误;
循环内的代码块缩进要保持一致,建议每个缩进用 4 个空格。