可以结束一个循环的关键字是python_第33 p,for遍历,循环取值最方便
大家好,我是楊數(shù)Tos,這是《從零基礎(chǔ)到大神》系列課程的第33篇文章,第二階段的課程:Python基礎(chǔ)知識(shí):Python中的控制語(yǔ)句之for遍歷。
學(xué)習(xí)本課程,建議先看一遍:【計(jì)算機(jī)基礎(chǔ)知識(shí)】課程。
一、用for能做的事,while也可以做到
理論上for能做的事情,用while循環(huán)都能做到;為什么我們還會(huì)需要用到for語(yǔ)句?因?yàn)榕cwhile循環(huán)相比較,for在循環(huán)會(huì)取值上更容易實(shí)現(xiàn);特殊是對(duì)一些可迭代對(duì)象的取值,for循環(huán)使用起來(lái)更簡(jiǎn)單;可以通過(guò)下面的一個(gè)例子說(shuō)明,在循環(huán)取值時(shí),for循環(huán)比while循環(huán)用起來(lái)更簡(jiǎn)便,如圖所示:
二、for遍歷的語(yǔ)法介紹
1、for遍歷的基礎(chǔ)語(yǔ)法樣式:
For x in可迭代對(duì)象/迭代器:
執(zhí)行代碼塊
……
Else:
執(zhí)行代碼
……
2、執(zhí)行流程
當(dāng)Python解釋器到遇for這個(gè)關(guān)鍵字時(shí),判斷for后面的是不是迭代器或可迭代對(duì)象;如果不是迭代器或可迭代對(duì)象,報(bào)錯(cuò)返回;
如果是迭代器或可迭代對(duì)象,判斷迭代器是否有值,如果沒(méi)有,跳出fro循環(huán),如果有,會(huì)執(zhí)行for語(yǔ)句中的代碼塊的內(nèi)容,輸出結(jié)果;
重復(fù)步驟1和步驟2,直到迭代器中的值被取完,for會(huì)跳出循環(huán)。
注:整數(shù)(int)和浮點(diǎn)數(shù)(float)都不是可迭代對(duì)象,即整數(shù)和浮點(diǎn)數(shù)都不能被for遍歷。
三、For遍歷與一些關(guān)鍵字
1、for與continue
與while循環(huán)中一樣,當(dāng)在for中遇到了continue關(guān)鍵字,會(huì)跳過(guò)單次循環(huán)不執(zhí)行,進(jìn)入下一下次循環(huán)中;
2、For與break
與while循環(huán)中一樣,當(dāng)在for中遇到的break關(guān)鍵字,會(huì)立刻結(jié)束本層循環(huán);
注意,是結(jié)束本層循環(huán),而不是結(jié)束一次循環(huán);如果在一個(gè)for循環(huán)內(nèi)再嵌套了一個(gè)for循環(huán),那么break結(jié)束的是離它最近的for循環(huán);
簡(jiǎn)單說(shuō):嵌套了三層for循環(huán)的循環(huán),就需要3個(gè)break關(guān)鍵字來(lái)結(jié)束這三層循環(huán),每個(gè)break關(guān)鍵字只能結(jié)束一層循環(huán)。
3、For與else
與while循環(huán)一樣,for循環(huán)在執(zhí)行過(guò)程中沒(méi)有觸發(fā)過(guò)break關(guān)鍵字,才會(huì)執(zhí)行else關(guān)鍵字后面的語(yǔ)句;
也就是說(shuō):for循環(huán)是正常結(jié)束的時(shí)候,else關(guān)鍵字后面的語(yǔ)句才會(huì)被執(zhí)行;
4、for與range生成器
range也是Python中的關(guān)鍵字,range是Python內(nèi)置的一個(gè)方法,它的作用是按照使用者的要求生成一系列數(shù)據(jù);
使用語(yǔ)法如下:
Range(start,stop,step=1)
這里的start與stop是數(shù)據(jù)的開(kāi)始值和結(jié)束值,step表示步長(zhǎng),默認(rèn)是1,步長(zhǎng)用來(lái)表示第1個(gè)值與第2值之間相差多少;
值注意的是,在Python2中和Python3中,range的功能都是一樣的;但在Python2中,我們使用range時(shí),會(huì)預(yù)先生成我們需要的所有數(shù)據(jù),然后再讓我們調(diào)用;如果我們生成的數(shù)據(jù)有100億個(gè),就很容易發(fā)生內(nèi)存溢出問(wèn)題,這是一個(gè)小bug。
而在Python3中,我們使用range時(shí),會(huì)預(yù)先生成一個(gè)生成器,它不會(huì)生成我們所需要的所有數(shù)據(jù),只有當(dāng)我們需要用到range中的數(shù)據(jù)時(shí),用到1個(gè),生成器就生成一個(gè);這種方式會(huì)非常節(jié)省空間。
最后:
如果是字典,For循環(huán)取值時(shí),默認(rèn)取的是字典中的鍵(key),而不是值(value)。
以上是本期內(nèi)容,如果有表達(dá)不對(duì)的內(nèi)容,歡迎您的留言、斧正,我們一起天天向上。
感謝您的閱讀,您的關(guān)注點(diǎn)贊就是對(duì)我最大的支持,謝謝!
本文由楊數(shù)Tos原創(chuàng),歡迎關(guān)注,帶你一起長(zhǎng)知識(shí)。
總結(jié)
以上是生活随笔為你收集整理的可以结束一个循环的关键字是python_第33 p,for遍历,循环取值最方便的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 项目开发流程_绿维文旅:旅游项目开发模式
- 下一篇: python矩阵相乘例题_百道Pytho