循环——批量处理数据
一、循环的意义
1、我们使用循环来做重复的事情,从而达到效率的提升。
2、在Python中有两种类型的循环,第一种叫做for循环(for-loop),第二种叫做while循环(while-loop)。从实际使用上来说,while循环在Python开发中并不常见,需要使用while循环的地方我们也可以使用for循环来进行模拟,从而达到同样的效果。
3、for循环一般和批量的处理数据是分不开的,for循环把一堆数据中的每一个都按照特定的规则进行重复处理。
二、认识循环
for i in [1,2,3]:
print(i)
1、在编程中,当我们使用一个来自于集合体的东西, 并且它能够一次次的被取出直至产生它的集合体被耗尽,那么 我们通常认为这描述的是 【可迭代对象】(iterable)的特征,也就是我们所说的一堆数据。
2、想要使用 for循环,就一定需要一个可迭代对象作为被循环的主体。前面提到的容器类型的数据全部都是可迭代的对象(光从名字就不难猜出),但是实际上在 Python 还有更多的可迭代对象,我们可以使用 iter() 函数来判断是否是可迭代对象——作为参数放进去不报错,那说明就是可迭代的,就可以被用于 for 循环;如果报错了就不是可迭代的。
3、i 可以称为循环变量(loop variable)。
for i in container:
do something
(1)每一个数据在使用的时候会有名字(变量赋值)。
(2)每一个数据在被使用的时候都按照统一的名字(变量名)进行操作。
(3)被操作完的数据就不再拥有这个名字,但最后一个元素除外(i=last)。
4、do something
我们对循环中数据的处理规则全部写在换行后的缩进里面,无论是像是变量赋值或者还是调用函数在或者其他的事情,所有在缩进里的代码全部会被认为是要在这一次循环中做的事情。循环会在可迭代对象中数据全部被访问过的时候停止,除非我们在这之前使用另外的语句叫停。
三、循环的4个应用场景
1、使用可迭代对象中的数据
在实际的开发中,经常会将容器中的数据全部作为原料使用。
比如像是发送消息给所有的用户这样的行为,这其中的批量处理是怎样实现的呢?实际上是给一个相当于【信息发送机】的函数批量的提供要发送的用户名和内容,从而实现循环调用函数。
users = [
'Frank Zappa',
'Terry Bozzio',
'Adrian Bwlew'
]
for user in users:
# send_message(user,'Hello')
print('hello,'+user)
使用爬虫获得每一个页面的信息的时候,是一次打开并保存列表中的每一个网址。
urls = [
'www.a.com',
'www.b.com',
'www.c.com'
]
for url in urls:
full_url = 'http://'+url
# web = open(full_url)
# web.save()
print(full_url)
2、构造/整理容器内的数据
有时候容器里的数据本身是不规整的,或者是有一些不想要的数据,这时候用循环就可以很方便的批量清洗数据,把容器中的数据进行过滤和重组之后再使用。
albums_list = [
'reuion',
'lefttoverture',
'machine head'
]
new_list = []
for album in albums_list:
# capitalize()将字符串的第一个字母变成大写,其他字母变小写。
new_name = album.capitalize()
new_list.append(new_name)
print(new_list)
3、嵌套多重循环
多重循环就是在循环中进行循环,这么做的原因是,有时候我们在同一时间处理多个嵌套的数据结构,也就是可迭代对象中的每一个元素仍然是可迭代的,这种循环常见于数据库类型的对象中查询或者是修改单位数据。
album = [
[
'Good Times Bad Times',
],
[
'Your Time Is Gonna Come'
'Black Mountain Side'
]
]
for Side in album:
for song in side:
print(song)
4、循环中的条件分支
将条件中的数据进行分类和筛选也是常见的一种操作行为,但是这不可避免的要使用到条件判断语句作为分支的筛选器。
for + if
四、总结
“把一堆数据中的每一个都按照特定的规则进行重复处理。”
for i in container:
do something
1、使用可迭代对象中的数据
2、构造/整理容器内的数据
3、嵌套多重循环
4、循环中的条件分支