新聞中心
python中的for循環(huán)是一個通用的序列迭代器,可以遍歷任何有序的序列對象內(nèi)部的元素,(注意是遍歷),也就是說循環(huán)的方式一開始就固定好了,本質(zhì)上是遍歷。

成都創(chuàng)新互聯(lián)公司專注于惠城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供惠城營銷型網(wǎng)站建設(shè),惠城網(wǎng)站制作、惠城網(wǎng)頁設(shè)計(jì)、惠城網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造惠城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供惠城網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
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
我的本意是想讓這個程序遇到偶數(shù)跳兩個,很顯然,它還是執(zhí)行了八次
而c++代碼就可以用for實(shí)現(xiàn)這個功能:
for(int i = 1; i<=8;i++)
{
if(i%2==0){
i += 2;
}
cout<結(jié)果為
1 4 5 8
python里要簡單的實(shí)現(xiàn)上述功能,則需要用while了。
總結(jié): 里的 只是對一個有序序列的遍歷
深層次原因:
python 中的for循環(huán)實(shí)質(zhì)上是一個迭代器,迭代器在一個獨(dú)立的線程中工作,并且擁有mutex(互斥)鎖,即只有一個進(jìn)程能訪問這個可迭代對象。
當(dāng)?shù)鞅粍?chuàng)建時,在這里是,它生成一個內(nèi)存索引表,這個表指向可迭代對象,在這里是range(8)。當(dāng)i改變時,因?yàn)閙utex鎖的原因,這個索引表的內(nèi)容并沒有同步改變。也可以說成,此非彼。
但是如果是引用,那沒有問題,這也很容易理解,比如在循環(huán)里打印print(i+2)什么的,都可以的。引用的還是那個
當(dāng)然, python中的循環(huán)也是可以改變循環(huán)次數(shù)的,重點(diǎn)在這句話--這個迭代器建立的內(nèi)存索引表指向一個可迭代對象。
我們來看看列表,例如
a= [1,2,3,4]
這個a列表本質(zhì)上是對a[0],a[1],a[2],a[4]的引用,而又因?yàn)榱斜肀旧硎且粋€可迭代對象,所以我們改變這個列表(可迭代對象)的內(nèi)部引用即可
count = 0
for i in a:
a[1:] = [1]
count += 1
print(count)
count 的結(jié)果為2
而上面的\color{red}{range}我們是沒辦法對其內(nèi)部操作的,第一個i是對內(nèi)存索引表的挨個查找,第二個i是新的對象
而對于列表,我們直接改變了可迭代對象的結(jié)構(gòu),也就是說內(nèi)存索引表本身發(fā)生了變化。
while
Python中的while循環(huán)是當(dāng)條件滿足時,便一直執(zhí)行,當(dāng)條件不滿足時,會停止
例如
while True:
print(1)
上面例子就是一個死循環(huán)。
分享文章:創(chuàng)新互聯(lián)Python教程:手把手教你使用python中的循環(huán)for和while
轉(zhuǎn)載來于:http://www.5511xx.com/article/djhpspp.html


咨詢
建站咨詢
