第二章 第3节 躲不过的重复
第5课知识总结
上一课,我们学习了两种新的数据类型: 列表与字典。
这节课,小K带大家来学习一下【循环】,什么是循环? 就是把一件事情一遍又一遍重复做多遍。
每个人的工作和生活中都充满了循环,比如你要在操场上跑步5圈锻炼身体,比如销售要一遍又一遍给别人介绍产品,比如高三考生高考前每天三点一线的生活。
循环,就意味着重复与无趣。尤其是工作中的重复,无聊重复的工作让我们感觉到疲惫。既然疲惫,我们就把这重复无聊的工作交给计算机,反正它又不怕累,交给它去做。
这就是人工智能能够解放人类劳动生产力的地方。 比如你需要下载100集电视剧,你不需要一集一集的下载,只需要告诉计算机全部下载,计算机就一遍又一遍的循环下载,并且最后还能把这些电视剧按照一定的规则排序。你会发现,计算机全部下载,比你一集一集的下载要快的多,这就是计算机的优势。
再比如商场里的销售员,每位客户到来,她都需要介绍一遍产品,如果今天来50位客户,她就需要介绍50遍产品。而计算机机器人,就可以通过【循环】,一遍又一遍不厌其烦的向客户介绍产品,计算机又不怕累。
为什么计算机就特别擅长做重复性工作呢? 并且是”擅长、速度快、不怕累”。
究其原理, 就是因为代码中的【循环语句】,让计算机能够重复、自动地执行命令。
Python江湖里,提供了两种循环语句, for…in循环语句与while循环语句。
下面, 我们先来看一下第一种循环语句for…in循环语句, 简称for循环。
for循环
还记得在上节课中, 我们对变形金刚点名吗? 回顾一下点名代码。
我们为了点名, 一口气敲了20行print()函数, 我不知道大家, 反正小K是敲累了。
为了解决这个事情, 小K通过for循环解决了上面的问题。
transformers = ['猛大帅' , '铁甲龙','六面兽', '大力金刚', '救护车','红色警戒', '大无畏', '飞天虎','闪电','冲云霄', '计算王','求雨鬼', '守护神','混天豹', '擎天柱', '威震天','惊破天', '红蜘蛛', '巨无霸福特', '雷霆解救队' ]
for i in transformers:
print(i+'睡了没?')
是不是变简单了? 把20行的代码改成了2行代码。 这就是for循环魅力,一个最简单的for循环。
先来看一下for循环的基本格式:
for i in [1,2,3,4,5,6]:
print(str(i)+'取钱')
终端上依次出现了列表中的数字+取钱,对吧?这就如同去取款机取钱。
for i in [1,2,3,4,5,6]:
print(str(i)+'取钱')
#有一群人在排队取钱 , 也就是列表[1,2,3,4,5,6]
#它们中的每一个被叫号的时候(for i in),就开始轮流进去取钱。
#每一个人进去,都会把号码给计算机,然后说“取钱” , 也就是print(i+“取钱”)
#最后计算机为每一个人都提供了服务。
for循环有三个要点:1、叫号 2、一群等着取钱的人 3、办事流程
叫号
既然叫号,就得有个变量,需要存放这个号。
在这里我们存放号这个变量叫做i,为什么用i呢? 在for循环里, 这个变量的专有名称叫【元素】,英文item,i是它的简称。其实,你可以给这个号码取任意名字。
for i in [1,2,3,4,5,6]:
print(str(i)+'取钱')
for num in [1,2,3,4,5,6]:
print(str(num)+'取钱')
for abc in [1,2,3,4,5,6]:
print(str(abc)+'取钱')
你看,是不是都能打印出来?这就对了,存号用什么变量名都可以。
好了,如果这人都办完了业务, 这个ATM机里存的号是谁的?
for i in [1,2,3,4,5,6]:
print(str(i)+'取钱')
print(i)
原来,办完业务之后, ATM机里保存着是最后一个办业务人的号码。
搞清楚这个叫号了,下面我们看一下这群排队等着取钱的人。
一群排队等着取钱的人
我们刚刚看到“一群排队等着取钱的人”,都是以列表形式:[1,2,3,4,5,6]出现。 那么还有哪些数据类型可以成为“排队取钱的人”?
小K感觉你已经猜到了, 就是字典。
city = {'北京':'天安门','上海':'东方明珠','广州':'珠江'}
for i in city:
print(i)
我们用print(i)把ATM中的内容打印出来,发现i会逐渐接收字典中的每一个【键】。
name = '黄晓明'
for i in name:
print(i)
江湖秘籍: 字符串、列表、字典都可以是“一群排队取钱的人”。
for in name:这个循环的过程,在python江湖中称为【遍历】。
其实,遍历这个词在古代汉语中已经出现过了
只是古人遍历的是山川;而Python遍历的是字符串、列表、字典。
字典的键值对的遍历
除了字符串、列表、字典三种数据类型,我们还可以结合其他数据遍历。
range()函数
for循环经常和range()函数一起搭配使用。
for i in range(5):
print(i)
运行后, 你会看到整数0,1,2,3,4已经打印出来了。 使用range(n)函数,就可以生成一个从0到n-1的整数序列。
for i in range(11,15):
print(i)
使用range(x,y) 函数,你可以生成从x到y-1的整数序列。
江湖秘籍:有了range()函数之后,当想把一段代码重复执行n遍时, 就可以直接使用for i in range(n)来解决问题。
for i in range(7):
print("每天想你第",i,"遍")
for i in range(0,100,11):
print(i)
你get到什么没有? 这里range(0,100,11) 的意思:从0到99(n-1)依次取数, 数与数之间的间隔为11。
for循环办事流程
我们最后来看一下for循环的第三个要点:办事流程。
for循环的办事流程,就是for循环中执行的语句。
for i in [1,2,3]:
print(i*3)
在这里print(i*3)就是办事流程, 都是print(i*3)。在当从i=1的情况下开始执行print(i*3),一直执行到i=3把所有人的业务都办完。
办事流程的专名叫【for的循环体】:格式是【冒号】后另起一行,【缩进】写命令。
格式对于编程来说,是件特别需要注意的事情。不要大意失荆州哦。再强调一下for循环的格式
好了,到这里就掌握了for循环的用法。
city = {'北京':'天安门','上海':'东方明珠','广州':'珠江'}
for i in city:
print(city[i])
到这里for循环就讲完了, 一起回顾一下。
好了,我们学习了for循环, 下面来学习一下另外一种循环:while循环。
While循环
先和while循环混个脸熟,看一下while循环的颜值
x = 0
while x < 6:
x = x+1
print(x)
是不是1,2,3,4,5,6依次打印出现?
它和for循环不同,它不叫号,也不是把一群排队等着取钱的人的业务做完。它是在“一定条件下“,”按流程办事”。
显然,while循环只需要两个步骤:1、设定条件 2、办事流程
while循环:设定条件
while循环在英文中表示“当”, while后面跟条件,当满足条件时,才会执行while内部的循环体。 所以,while循环类似于高速上的收费站:只要你满足条件,那你就可以一遍又一遍循环“按流程办事”。
就在上面例子中,只要满足条件x<6, 就会不停的执行x=x+1,print(x+1)打印出来,直到不满足条件后,就停止办事流程。
江湖秘籍:冒号还是英文输入法下的冒号哦。
刚才黄晓明家的Angelababy去取钱,需要输密码,只要密码输入错误,ATM就会一直让她输密码,如果密码输入正确,就会显示银行卡余额。银行卡的密码是520666。
pwd = '' # 注:这个''代表空字符串
while pwd != '520666':
pwd = input('请输入银行卡密码:')
print('卡内还有999999999999元~')
感受到while循环的逻辑没有,是不是很简单。
这里 pwd!=520666就是while循环设定的条件, 只要满足这个条件,就会一直执行while循环里面的循环体pwd = input(‘请输入银行卡密码:’)。
好了,接下来我们看看while循环的第二个要点:办事流程。
while循环:办事流程
while循环,在满足设定条件后,会一遍又一遍的循环执行办事流程。
a=0
while a<4:
a = a+1
print(a)
a = 0
while a < 4:
a = a + 1
print("while循环内")
print(a)
print("while循环外")
print(a)
好了,到这里,while循环的知识学完了。
for循环与while循环对比
for循环和while循环最大的区别就是在于【循环的工作量是否确定】,for循环就像ATM依次取钱一样,直到把所有人的钱都取完才下班。但是while循环就像收费站一样,只要【满足条件】就干活,不满足条件不干活。
课后练习
1.循环打印1到10之间到数字,排除数字4。
2. 需要循环输入跑男团队每个人的身高,只要找到一个身高高于170的就去搬水;如果找不到,就一直循环。
0 条评论