創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
這篇文章將為大家詳細(xì)講解有關(guān)python中如何使用循環(huán)for和while,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
python中的for循環(huán)是一個(gè)通用的序列迭代器,可以遍歷任何有序的序列對(duì)象內(nèi)部的元素,(注意是遍歷),也就是說循環(huán)的方式一開始就固定好了,本質(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<<i<<' '; }
結(jié)果為
1 4 5 8
python里要簡單的實(shí)現(xiàn)上述功能,則需要用while了。
總結(jié): 里的 只是對(duì)一個(gè)有序序列的遍歷
深層次原因:
python 中的for循環(huán)實(shí)質(zhì)上是一個(gè)迭代器,迭代器在一個(gè)獨(dú)立的線程中工作,并且擁有mutex(互斥)鎖,即只有一個(gè)進(jì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)容并沒有同步改變。也可以說成,此非彼。
但是如果是引用,那沒有問題,這也很容易理解,比如在循環(huán)里打印print(i+2)什么的,都可以的。引用的還是那個(gè)
當(dāng)然, python中的循環(huán)也是可以改變循環(huán)次數(shù)的,重點(diǎn)在這句話--這個(gè)迭代器建立的內(nèi)存索引表指向一個(gè)可迭代對(duì)象。
我們來看看列表,例如
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}我們是沒辦法對(duì)其內(nèi)部操作的,第一個(gè)i是對(duì)內(nèi)存索引表的挨個(gè)查找,第二個(gè)i是新的對(duì)象
而對(duì)于列表,我們直接改變了可迭代對(duì)象的結(jié)構(gòu),也就是說內(nèi)存索引表本身發(fā)生了變化。
while
Python中的while循環(huán)是當(dāng)條件滿足時(shí),便一直執(zhí)行,當(dāng)條件不滿足時(shí),會(huì)停止
例如
while True: print(1)
上面例子就是一個(gè)死循環(huán)。
關(guān)于python中如何使用循環(huán)for和while就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站標(biāo)題:python中如何使用循環(huán)for和while-創(chuàng)新互聯(lián)
路徑分享:http://www.rwnh.cn/article14/cejgge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站導(dǎo)航、域名注冊(cè)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容