日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python使用循环结构计算10_十二、 python中的循环结构

發(fā)布時(shí)間:2024/9/15 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python使用循环结构计算10_十二、 python中的循环结构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們要計(jì)算1+2+3的時(shí)候,可以直接寫出來,但是計(jì)算1+2+3+···+100的時(shí)候,就不能寫了。如果計(jì)算1到1億的和,全寫出來就有點(diǎn)不現(xiàn)實(shí)了。為了讓計(jì)算機(jī)能計(jì)算出1到1億的和,這時(shí)候就需要循環(huán)結(jié)構(gòu)了。

python提供了兩種循環(huán)結(jié)構(gòu),一種是while循環(huán),另一種是for……in循環(huán)。

while循環(huán)

while循環(huán)的語句形式與if語句類似,執(zhí)行語句需要使用四個(gè)空格作為縮進(jìn)。

while (條件表達(dá)式1):

執(zhí)行語句1

執(zhí)行語句2

當(dāng)程序執(zhí)行到while循環(huán)的時(shí)候,先判斷“條件表達(dá)式1”,如果為True,則執(zhí)行下面的“執(zhí)行語句1”,“執(zhí)行語句2”,當(dāng)兩句都執(zhí)行完畢后,再次判斷“條件表達(dá)式1”,若為True,則繼續(xù)執(zhí)行下面的執(zhí)行語句,若為False,則不執(zhí)行下面的執(zhí)行語句,循環(huán)結(jié)束。

舉個(gè)例子,我們要計(jì)算1到5的和:

sum,i = 0,1 #sum=0, i=1

while i<=5:

sum+=i #sum=sum+i

i+=1 #i=i+1

print('sum',sum)

在這段程序中,先將sum賦值為0,i賦值為1,然后進(jìn)入循環(huán)結(jié)構(gòu)。首先判斷i<=5是真是假,為True,執(zhí)行下面的循環(huán)體,也就是sum+=i,i+=1,此時(shí)的sum等于1,i等于2,然后返回條件表達(dá)式i<=5,判斷是否為真,如果為真,繼續(xù)循環(huán)。如此往復(fù),最后i=6,條件表達(dá)式為False,循環(huán)結(jié)束,此時(shí)的sum等于1+2+3+4+5的和。執(zhí)行下一步打印sum,得到結(jié)果:

sum 15

這就是while循環(huán)。

for……in循環(huán)

python提供了一個(gè)for……in循環(huán),這個(gè)循環(huán)非常強(qiáng)大。它主要是能將列表和元組中的元素迭代出來。與之前的while循環(huán)相同的是,需要使用四個(gè)空格作為縮進(jìn)。

names = ['Tom', 'Jack', 'David']

for name in names:

print(name)

打印結(jié)果:

Tom

Jack

David

我們可以看到names是一個(gè)列表,里面有三個(gè)字符串

使用for name in names后,name作為一個(gè)變量,隨著循環(huán)的進(jìn)行,依次代表names中的每一個(gè)元素。第一次循環(huán)的時(shí)候,name是’Tom’,執(zhí)行循環(huán)體,print(name),打印出’Tom’;第二次循環(huán)時(shí),name變?yōu)椤疛ack’,打印出’Jack’;第三次name變?yōu)椤疍avid’,打印出’David’。至此,names中所有的元素已經(jīng)按次序循環(huán)了一次,循環(huán)到此結(jié)束。

這就是for循環(huán)。

如果我們要計(jì)算1到5的和,那么只用寫成:

sum = 0

for i in [1, 2, 3, 4, 5]:

sum+=i

print('sum',sum)

打印的結(jié)果是:

sum 15

不過這么寫的話就很麻煩,因?yàn)榈冒?到5全寫出來,好在python提供了一個(gè)叫做range()的函數(shù)。

range(start, stop[, step]) -> range object

range()函數(shù)里面最多放三個(gè)數(shù)字,最少放一個(gè)。

當(dāng)放1個(gè)數(shù)字的時(shí)候,代表stop這個(gè)參數(shù)。

當(dāng)放2個(gè)數(shù)字的時(shí)候,代表start和stop這兩個(gè)參數(shù)。

當(dāng)放3個(gè)數(shù)字的時(shí)候,代表start,stop和step這三個(gè)參數(shù)。

使用range()函數(shù)后,會生成一個(gè)整數(shù)序列,這個(gè)序列不是列表,必須通過強(qiáng)制類型轉(zhuǎn)換才能轉(zhuǎn)換為列表。

舉個(gè)例子:

print(range(5))

print(list(range(5)))

打印結(jié)果是:

range(0, 5)

[0, 1, 2, 3, 4]

我們可以看到range(5)就代表range(0,5),也就是一個(gè)從0到4的一個(gè)序列,這個(gè)與前面的切片類似,取前不取后,當(dāng)只使用一個(gè)參數(shù)的時(shí)候,該數(shù)字作為stop的位置,start參數(shù)默認(rèn)使用0,也就是從0到stop-1。當(dāng)使用第三個(gè)的數(shù)字的時(shí)候,第三個(gè)數(shù)字作為step,步長,這個(gè)與前面的切片也是類似的。

print(range(0,11,2))

print(list(range(0,11,2)))

打印結(jié)果:

range(0, 11, 2)

[0, 2, 4, 6, 8, 10]

以上就是range()函數(shù)的用法。不用擔(dān)心的是,range()函數(shù)生成的這個(gè)對象,這個(gè)有序序列,是可以直接用for……in進(jìn)行迭代的。

for i in range(5):

print(i)

打印結(jié)果:

0

1

2

3

4

所以我們在計(jì)算1到100的和的時(shí)候,可以使用如下的代碼:

sum = 0

for i in range(101):

sum+=i

print('sum:',sum)

可以看到打印結(jié)果:

sum: 5050

這就是使用for循環(huán)進(jìn)行計(jì)算。

通常來說,for循環(huán)比while循環(huán)更加靈活,尤其是操作對象為列表,元組,字典等可迭代結(jié)構(gòu)的時(shí)候,非常強(qiáng)大。

在做循環(huán)的時(shí)候,python提供了一個(gè)enumerate()函數(shù),非常實(shí)用

a = ['Tom', 'Jack', 'Bob']

for index,value in enumerate(a):

print(index, value)

打印結(jié)果:

0 Tom

1 Jack

2 Bob

enumerate()函數(shù)生成的是一個(gè)由多個(gè)元組組成的序列,每個(gè)元組里面都有兩個(gè)元素,分別是當(dāng)前元素是索引與當(dāng)前元素。上面那個(gè)例子中,在每次循環(huán)中,都將元組中的兩個(gè)值分別賦給了index和value,并分別打印出了這兩個(gè)值。

以上就是python中的循環(huán)結(jié)構(gòu)。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的python使用循环结构计算10_十二、 python中的循环结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。