3.5.2 for循環(huán)
hello大家好,不知道在上節(jié)中大家練習while循環(huán)練習得怎么樣了,相信大家都已經(jīng)熟悉while循環(huán)了吧,那么現(xiàn)在我在這里在向大家講解一下for循環(huán)。大家肯定也很懵圈,怎么有個while循環(huán),又有個for循環(huán),for循環(huán)又是干嘛的?相信很多剛接觸編程的朋友一定很懵圈,哈哈......因為我當時也很懵圈。好了,廢話不多說,接下來就給大家將一下for循環(huán)和while循環(huán)的區(qū)別,以及for循環(huán)是什么東西。
while循環(huán)的功能非常強大,它可以完成任何形式的循環(huán),從技術上說,有while循環(huán)就足夠了,那為什么還要加for循環(huán)呢?其實對于某些循環(huán),while仍然需要多寫一些代碼,為了更進一步簡化循環(huán)的代碼,Python語言退出了for循環(huán)。現(xiàn)在大家知道while循環(huán)和for循環(huán)的區(qū)別了吧?哈哈......就是為了讓你少寫一點代碼,讓你多點時間陪女朋友。...呃,跑題了。
for循環(huán)主要用于對一個集合進行循環(huán)(序列和其他可迭代的對象),每次循環(huán),會從集合中取得一個元素,并執(zhí)行一次代碼塊。知道集合中所有的元素都被枚舉(獲得集合中的每一個元素的過程稱為枚舉,以后也會跟大家說道枚舉值這個玩意。)了,for循環(huán)才結束(退出循環(huán))。
在使用for循環(huán)時需要使用到集合的概念,這里說的集合可不是叫你去集合。這里說的集合是把所有的元素,都裝進一個盒子里面,我們稱這個盒子為(列表)。這里主要的內(nèi)容不是說這個集合,是讓大家了解一下集合,以后會講到集合。在這里大家只要先知道集合就是一個盒子,而不是叫你去集合即可。
在使用for循環(huán)之前,先定義一個列表,該列表的元素是字符串。然后用for循環(huán)輸出列表中的所有元素值。我們先創(chuàng)建一個列表,名稱叫做words。
words= ['this','is','黑人','大象','美女','帥哥'] #定義一個字符串列表
for word in words: #用for循環(huán)輸出列表中的所有元素
print(word)
輸出結果:
this
is
黑人
大象
美女
帥哥
上面這段for循環(huán)的代碼非常好理解吧,我掐指一算,大家應該都能理解。但是我也要說一說是什么個意思,for循環(huán)語句中將保存集合元素的變量和集合變量用in關鍵字分隔(喜歡學習的小伙伴又要問了,什么是分隔,分隔就是分隔,你管那么多呢)。在本例中,words是一個集合,當for循環(huán)執(zhí)行的時候,每執(zhí)行一次循環(huán),就會一次從words列表中摳一個元素出來扔給你,直到把元素都給摳完了,沒得扔了,就停止了(退出循環(huán))。這樣好理解了吧,接地氣了吧。
大家可能又會有一個新的想法,for循環(huán)是把列表里面的元素給摳出來扔給我,while循環(huán)不是把列表里面的元素摳出來扔給我啊,怎么才能讓for循環(huán)像while循環(huán)那樣高端,不只是摳列表的元素啊。能不能做到這一點呢?答案是可以做到的,大家把思維邏輯逆天的思考一下,啊,對,是逆天。變量在循環(huán)外部設置一個初始值,比如說x = 1,那這個就是在外部設置了一個x變量的初始值為1。在循環(huán)內(nèi)部,通過變量的值不斷的來改變控制循環(huán)的執(zhí)行。說白了,就像前面講的,"x = 1 whie x <= 10 print(x) x += 1"這個例子,那不就是在循環(huán)外部設置了一個1的初始值,然后通過while循環(huán)內(nèi)部x <= 10來控制這個變量值的輸出嗎?那反過來用for循環(huán)把列表里面的元素摳出來,那不是一樣的嗎?例如:
words= [1,2,3,4,5,6,7,8,9,10]
for word in words:
print(word)
輸出結果:
1
2
3
4
5
6
7
8
9
10
你看,這效果不就相當于while循環(huán)了嗎?有些朋友也許就會說了,哇,要一個一個的輸入這些數(shù)字,那搞個屁。大家不要急,這里只是跟你們解釋這個思維的方式問題,當然不會讓你一個一個的去輸入這些數(shù)字了,真要一個一個輸入這些數(shù)字,那我也不會跟你們講這個for循環(huán)了,下面我就會講到一個函數(shù),這個函數(shù)就是自動增值的。是時候表演真正的技術了。大家請看,非常神奇的range()函數(shù)。
for word in range(1,11):
print(word,end=" ")
輸出結果:
1 2 3 4 5 6 7 8 9 10
噔噔噔噔,神奇吧。給大家介紹介紹一個新朋友range(),這個函數(shù)有兩個參數(shù),分別是數(shù)值范圍的最小值和最大值加1,什么叫最大值加1,看到上面代碼了吧,range(1,11)但是輸出出來的就是1-10,沒有11。這個就是最大值加1,如果是range(1,10)那么輸出出來的數(shù)就是1-9。
[例 3.7] 本例演示了使用順序結構、while循環(huán)和for循環(huán)輸出相鄰數(shù)字的方法,其中for循環(huán)使用了range()函數(shù)快速生成一個包含大量相鄰數(shù)字的列表,并對這些列表進行迭代。
#先用最"笨"的方法來一遍
print(1,end=" ")
print(2,end=" ")
print(3,end=" ")
print(4,end=" ")
print(5,end=" ")
print(6,end=" ")
print(7,end=" ")
print(8,end=" ")
print(9,end=" ")
print(10,end=" ")
#如果不復制粘貼,還是蠻繁瑣的
#用while循環(huán)輸出1-10
print("用while循環(huán)輸出1-10")
x = 1
while x <= 10:
print(x,end=" ")
x += 1
#哈,簡簡單單一點都不累就搞定了
#使用for循環(huán)輸出1-10
print("使用for循環(huán)輸出1-10")
#先定義一個列表
words = [1,2,3,4,5,6,7,8,9,10]
for word in words:
print(word,end=" ")
#這還是得手工輸入數(shù)字上去,也是累。在換個方法
#通過for循環(huán),使用range()函數(shù)自動生成一個1-20的列表
print("通過for循環(huán),使用range()函數(shù)自動生成一個1-20的列表")
words = range(1,21)
for word in words:
print(word,end=" ")
print("\n用for循環(huán)輸出列表中的值的乘積(1-20)")
#使用range()函數(shù)生成一個元素為0-20的列表,并對該列表進行迭代
for word in range(21):
print(word * word,end=" ")
輸出結果:
1 2 3 4 5 6 7 8 9 10 用while循環(huán)輸出1-10
1 2 3 4 5 6 7 8 9 10 使用for循環(huán)輸出1-10
1 2 3 4 5 6 7 8 9 10 通過for循環(huán),使用range()函數(shù)自動生成一個1-20的列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
用for循環(huán)輸出列表中的值的乘積(1-20)
0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400
說了這么多,大家應該知道for循環(huán)怎么使用了吧。過后大家可以試一試,多試試不同的方法。好了,for循環(huán)就說到這吧,我們下節(jié)課見。先預告一下,下節(jié)課內(nèi)容是跳出循環(huán)。先把循環(huán)用好了,在跳出循環(huán)哦,不然就成死循環(huán)了。
在這里聲明一下,我寫這些教程不是為了培訓,我也不是培訓機構的老師。如果我是培訓機構的老師,我也犯不著在這里寫教程。這主要是為了大家一起學習,本篇內(nèi)容純屬技術交流,不得用作商業(yè)用途。有些地方說得不好的,還請大家多多包涵。有興趣一起學習的新手小伙伴們,可以加我微信:ajdbg0003 我們可以一起交流交流Python的技術問題。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
