這篇文章將為大家詳細(xì)講解有關(guān)python中如何使用循環(huán)for和while,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
10年積累的網(wǎng)站制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有什邡免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
python中的for循環(huán)是一個(gè)通用的序列迭代器,可以遍歷任何有序的序列對(duì)象內(nèi)部的元素,(注意是遍歷),也就是說(shuō)循環(huán)的方式一開(kāi)始就固定好了,本質(zhì)上是遍歷。
python:代碼
count = 0for i in range(8): if i % 2 == 0: i += 2 print(i, end=' ') count += 1print('\n總次數(shù)',count)
返回結(jié)果
2 1 4 3 6 5 8 7 總次數(shù) 8
我的本意是想讓這個(gè)程序遇到偶數(shù)跳兩個(gè),很顯然,它還是執(zhí)行了八次
而c++代碼就可以用for實(shí)現(xiàn)這個(gè)功能:
for(int i = 1; i<=8;i++) { if(i%2==0){ i += 2; } cout<結(jié)果為
1 4 5 8python里要簡(jiǎn)單的實(shí)現(xiàn)上述功能,則需要用while了。
總結(jié): 里的 只是對(duì)一個(gè)有序序列的遍歷
深層次原因:
python 中的for循環(huán)實(shí)質(zhì)上是一個(gè)迭代器,迭代器在一個(gè)獨(dú)立的線(xiàn)程中工作,并且擁有mutex(互斥)鎖,即只有一個(gè)進(jìn)程能訪(fǎng)問(wèn)這個(gè)可迭代對(duì)象。
當(dāng)?shù)鞅粍?chuàng)建時(shí),在這里是,它生成一個(gè)內(nèi)存索引表,這個(gè)表指向可迭代對(duì)象,在這里是range(8)。當(dāng)i改變時(shí),因?yàn)閙utex鎖的原因,這個(gè)索引表的內(nèi)容并沒(méi)有同步改變。也可以說(shuō)成,此非彼。
但是如果是引用,那沒(méi)有問(wèn)題,這也很容易理解,比如在循環(huán)里打印print(i+2)什么的,都可以的。引用的還是那個(gè)
當(dāng)然, python中的循環(huán)也是可以改變循環(huán)次數(shù)的,重點(diǎn)在這句話(huà)--這個(gè)迭代器建立的內(nèi)存索引表指向一個(gè)可迭代對(duì)象。
我們來(lái)看看列表,例如
a= [1,2,3,4]這個(gè)a列表本質(zhì)上是對(duì)a[0],a[1],a[2],a[4]的引用,而又因?yàn)榱斜肀旧硎且粋€(gè)可迭代對(duì)象,所以我們改變這個(gè)列表(可迭代對(duì)象)的內(nèi)部引用即可
count = 0 for i in a: a[1:] = [1] count += 1 print(count)count 的結(jié)果為2
而上面的\color{red}{range}我們是沒(méi)辦法對(duì)其內(nèi)部操作的,第一個(gè)i是對(duì)內(nèi)存索引表的挨個(gè)查找,第二個(gè)i是新的對(duì)象
而對(duì)于列表,我們直接改變了可迭代對(duì)象的結(jié)構(gòu),也就是說(shuō)內(nèi)存索引表本身發(fā)生了變化。
while
Python中的while循環(huán)是當(dāng)條件滿(mǎn)足時(shí),便一直執(zhí)行,當(dāng)條件不滿(mǎn)足時(shí),會(huì)停止
例如
while True: print(1)上面例子就是一個(gè)死循環(huán)。
關(guān)于python中如何使用循環(huán)for和while就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁(yè)標(biāo)題:python中如何使用循環(huán)for和while
當(dāng)前路徑:http://weahome.cn/article/ppjsoj.html