久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python for+range

我們先打開CMD,在交互式界面上看range的用法。

在Python3和Python2中,range是不一樣的,在cmd界面Python2中,打印range(10),會顯示[1,2,3,4,5,6,7,8,9]。顧頭不顧尾的原則,0要,10不要。

在cmd界面Python3中,打印range(10)。

Python3給我們做了一步空間上的優(yōu)化,它是一個(gè)迭代器,這個(gè)還是得到我們講可迭代對象的時(shí)候才能講。

我可以簡單的給你做個(gè)比喻,在Python2的range(10),相當(dāng)于給了我們一個(gè)筐,筐里裝了10個(gè)雞蛋。但是在Python3的range(10),相當(dāng)于給了我們一只可以下10個(gè)雞蛋的老母雞。

剛剛我們說Python3的range給我們做了一步空間上的優(yōu)化,大家現(xiàn)在想是一筐雞蛋更占空間還是一只會下蛋的老母雞更占空間,可能10個(gè)雞蛋不好判斷,那么1000個(gè)雞蛋和會下1000個(gè)雞蛋的老母雞那個(gè)更占空間?

肯定是1000個(gè)雞蛋更占空間,我們往更夸張的想法去想。如果你寫了一個(gè)range一個(gè)億,那Python2就真的會給你生成一個(gè)億數(shù)字的列表,直接把內(nèi)存給撐爆。但是Python3不會,因?yàn)槭且粋€(gè)迭代器,一只會下蛋的老母雞它就只占一個(gè)內(nèi)存地址。你每次要下蛋的時(shí)候就給它發(fā)個(gè)請求,你給我下個(gè)蛋,它就會下個(gè)蛋。這樣能理解吧。

雖然Python2和Python3里面range有些不一樣,但是我們在for循環(huán)加range的時(shí)候用法還是一樣的。

for i in range(10):
    print('于謙')

對于Python3來說,每次循環(huán)都是告訴這個(gè)可以下10個(gè)雞蛋的老母雞,給我下個(gè)蛋,直到把10個(gè)蛋全部下完,就循環(huán)了10次。

雖然原理不同,但是用法和結(jié)果還是一樣的,都會打印10次于謙。

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python for+range

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞