4.1 遍历整个列表
所谓遍历(Traversal),是指沿着某条搜索路线,依次对集合中每个节点均做一次访问。 简言之,就是搜索+执行的一个操作。
在实际工作中,遍历整个列表的所有元素,对每个元素执行相同的操作是经常会遇到的需求。对列表中的每个元素执行相同的操作,可以用python中的for循环来实现。
species=['Homo sapiens','Mus musculus','Rattus norvegicus']
for specie in species:
print(specie)
4.1.1 for循环的执行流程
在上面的代码中,for specie in species是让python获取列表species中的第一个元素('Homo sapiens')然后将其存储到变量specie中,接下来,python就读取下一行代码print(specie)打印出specie的值【此时打印出来的,只有'Homo sapiens'这个值,原因后面会说】。鉴于列表中还有其他值,python会返回在到循环的第一行,直到把列表中的值都读取完。
- 在编写for循环的时候,对于用来存储列表的每个值的临时变量,可以随意指定名称,但建议用单复数形式命名,这样方便判断代码段处理的是单个列表元素还是整个列表。
for cat in cats
for dog in dogs
for item in list_of_items
4.1.2 for循环结束后执行操作
for循环结束后,一般需要提供总结性输入或者继续执行程序中的其他任务,这个时候就需要注意,新写的代码要放在for循环后面,且不缩进。
比如,设计一个项目自动报价系统,可以先用for循环来检查每个项目的金额,在遍历整个数据后,计算出每个项目的金额然后打印出来,最后需要把总额打印出来,就在循环后面添加一个缩进的代码块,在界面里显示一下“确认订单”的按钮。
species=['Homo sapiens','Mus musculus','Rattus norvegicus']
for specie in species:
print('One of the species in GSE dataset is '+specie+'.\n')
print('The GEO database species include '+specie+'.')
从上面的代码可以看出,最后总结性的输出那里,我想要的结果,是The GEO database species include Homo sapiens, Mus musculus, Rattus norvegicus.但最终只有Rattus norvegicus输出,这就是上面4.1.1里说的问题,对于for循环,它每次执行的操作仅限于当前存储的临时变量,所以缩进后的print打印的也只是当前的临时变量。
改了一下变量,还是没能解决这个问题。显示变量的类型不对,应该是字符而不是列表,好吧,先留个问题,后面再回来看看应该怎么处理。