Python 循環(huán)語(yǔ)句
前提:如果讓你1-100之間的整數(shù),你用程序應(yīng)該怎么實(shí)現(xiàn)。
本章節(jié)將向大家介紹Python的循環(huán)語(yǔ)句,程序在一般情況下是按順序執(zhí)行的。
編程語(yǔ)言提供了各種控制結(jié)構(gòu),允許更復(fù)雜的執(zhí)行路徑。
循環(huán)語(yǔ)句允許我們執(zhí)行一個(gè)語(yǔ)句或語(yǔ)句組多次,下面是在大多數(shù)編程語(yǔ)言中的循環(huán)語(yǔ)句的一般形式:
Python提供了for循環(huán)和while循環(huán)
循環(huán)類(lèi)型 | 描述 |
while 循環(huán) | 在給定的判斷條件為 true 時(shí)執(zhí)行循環(huán)體,否則退出循環(huán)體。 |
for 循環(huán) | 重復(fù)執(zhí)行語(yǔ)句 |
嵌套循環(huán) | 你可以在while循環(huán)體中嵌套for循環(huán) |
循環(huán)控制語(yǔ)句
循環(huán)控制語(yǔ)句可以更改語(yǔ)句執(zhí)行的順序。Python支持以下循環(huán)控制語(yǔ)句:
控制語(yǔ)句 | 描述 |
break 語(yǔ)句 | 在語(yǔ)句塊執(zhí)行過(guò)程中終止循環(huán),并且跳出整個(gè)循環(huán) |
continue 語(yǔ)句 | 在語(yǔ)句塊執(zhí)行過(guò)程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)。 |
pass 語(yǔ)句 | pass是空語(yǔ)句,是為了保持程序結(jié)構(gòu)的完整性。 |
Python break語(yǔ)句
Python break語(yǔ)句,打破了最近封閉for或while循環(huán)。
break語(yǔ)句用來(lái)終止循環(huán)語(yǔ)句,即循環(huán)條件沒(méi)有False條件或者序列還沒(méi)被完全遞歸完,也會(huì)停止執(zhí)行循環(huán)語(yǔ)句。
break語(yǔ)句用在while和for循環(huán)中。
如果您使用嵌套循環(huán),break語(yǔ)句將停止執(zhí)行最深層的循環(huán),并開(kāi)始執(zhí)行下一行代碼。
Python語(yǔ)言 break 語(yǔ)句語(yǔ)法:
break
流程圖:
實(shí)例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/python for letter in 'Python' : # First Example if letter == 'h' : break print 'Current Letter :' , letter var=10 # Second Example whilevar>0: print 'Current variable value :' ,var var=var-1 ifvar==5: break print "Good bye!" |
Python continue語(yǔ)句
Python continue 語(yǔ)句跳出本次循環(huán),而break跳出整個(gè)循環(huán)。
continue 語(yǔ)句用來(lái)告訴Python跳過(guò)當(dāng)前循環(huán)的剩余語(yǔ)句,然后繼續(xù)進(jìn)行下一輪循環(huán)。
continue語(yǔ)句用在while和for循環(huán)中。
Python 語(yǔ)言 continue 語(yǔ)句語(yǔ)法格式如下:
continue
流程圖:
實(shí)例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/python # -*- coding: UTF-8 -*- for letter in 'Python' : # 第一個(gè)實(shí)例 if letter == 'h' : continue print '當(dāng)前字母 :' , letter var=10 # 第二個(gè)實(shí)例 whilevar>0: var=var-1 ifvar==5: continue print '當(dāng)前變量值 :' ,var print "Good bye!" |
實(shí)例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # continue 和 break 用法 i =1 while i <10: i +=1 if i%2>0: # 非雙數(shù)時(shí)跳過(guò)輸出 continue print i # 輸出雙數(shù)2、4、6、8、10 i =1 while1: # 循環(huán)條件為1必定成立 print i # 輸出1~10 i +=1 if i >10: # 當(dāng)i大于10時(shí)跳出循環(huán) break |
實(shí)例:取經(jīng)的路上
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > for < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >i < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > in < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(0,204,204);" >range< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >(< /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(249,113,187);" >1< /span ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >,< /span ><span style= "font-size:16px;font-family:'宋體';color:rgb(249,113,187);" >11< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >)< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >:<br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > if < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >i < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >== < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(249,113,187);" >5< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >:<br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" >print < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > '</span></strong><strong><span style="font-size:16px;font-family:' 宋體 ';color:rgb(133,205,0);">睡會(huì)覺(jué)' <br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > continue <br> if < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >i < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >== < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(249,113,187);" >80< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >:<br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" >print < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > '</span></strong><strong><span style="font-size:16px;font-family:' 宋體 ';color:rgb(133,205,0);">太累了,不想去了,就在女兒國(guó)吧' <br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > break <br> print < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > '</span></strong><strong><span style="font-size:16px;font-family:' 宋體 ';color:rgb(133,205,0);">在取經(jīng)的路上,次數(shù)%d' < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >% < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >i< /span >< /span > |
Python for循環(huán)語(yǔ)句
Python for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個(gè)列表或者一個(gè)字符串。
語(yǔ)法:
for循環(huán)的語(yǔ)法格式如下:
for iterating_var in sequence:
statements(s)
流程圖:
實(shí)例:
1 2 3 4 5 6 7 8 9 | # -*- coding: UTF-8 -*- for letter in 'Python' : # 第一個(gè)實(shí)例 print '當(dāng)前字母 :' , letter fruits =[ 'banana' , 'apple' , 'mango' ] for fruit in fruits: # 第二個(gè)實(shí)例 print '當(dāng)前字母 :' , fruit print "Good bye!" |
以上實(shí)例輸出結(jié)果:
1 2 3 4 5 6 7 8 9 10 | 當(dāng)前字母: P 當(dāng)前字母: y 當(dāng)前字母: t 當(dāng)前字母: h 當(dāng)前字母: o 當(dāng)前字母: n 當(dāng)前字母: banana 當(dāng)前字母: apple 當(dāng)前字母: mango Good bye! |
通過(guò)序列索引迭代(遍歷)
另外一種執(zhí)行循環(huán)的遍歷方式是通過(guò)索引,如下實(shí)例:
1 2 3 4 5 6 7 | # -*- coding: UTF-8 -*- fruits =[ 'banana' , 'apple' , 'mango' ] for index in range(len(fruits)): print '當(dāng)前水果 :' , fruits[index] print "Good bye!" |
以上實(shí)例輸出結(jié)果:
1 2 3 4 | 當(dāng)前水果: banana 當(dāng)前水果: apple 當(dāng)前水果: mango Good bye! |
以上實(shí)例我們使用了內(nèi)置函數(shù) len() 和 range(),函數(shù) len() 返回列表的長(zhǎng)度,即元素的個(gè)數(shù)。 range返回一個(gè)序列的數(shù)。
實(shí)例:求1到100的和
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > sum = 0<br>< /span > |
for x in range(101):
sum = sum + x
print sum
實(shí)例:遍歷字典
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);background:rgb(77,68,77);" >classmates< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >= [< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'Madking' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >,< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'Agon' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'Michael' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'Bob' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'Tracy' < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >]<br>< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > for < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >cls < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > in < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);background:rgb(70,70,77);" >classmates< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >:<br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" >print < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >cls< /span >< /span > |
實(shí)例:從第一個(gè)列表中每次取出一個(gè),從第二個(gè)列表中也每次取出一個(gè),組合成一個(gè)新的列表,新列表中包含所有組合
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >List1 < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >= [< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'zi' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'qiang' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'xue' < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(133,205,0);" > 'tang' < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >]<br>< /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);background:rgb(77,68,77);" >List2< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >= [< /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(249,113,187);" >1< /span ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >, < /span ><span style= "font-size:16px;font-family:'宋體';color:rgb(249,113,187);" >2< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >]<br><br>< /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >new_list < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >= []<br><br>< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > for < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >m < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > in < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >List1< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >:<br> < /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > for < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >n < /span ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" > in < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);background:rgb(70,70,77);" >List2< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >:<br> < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >new_list.append<strong>(< /strong >< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >[< /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >m, n< /span ><strong><span style= "font-size:16px;font-family:'宋體';color:#FFFFFF;" >]< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >)<br><br>< /span >< /strong ><strong><span style= "font-size:16px;font-family:'宋體';color:rgb(204,153,0);" >print < /span >< /strong ><span style= "font-size:16px;font-family:'宋體';color:rgb(155,194,142);" >new_list< /span >< /span > |
實(shí)例:從一個(gè)列表中每次取出兩個(gè),找出所有組合方式
1 2 3 4 5 6 | List = [1, 2, 3, 4, 5] length = len(List) for x in range(0, length-1): for y in range(x+1, length): print List[x], List[y] |
實(shí)例:for循環(huán)輸出99乘法表
for i in range(1,10):
for j in range(1,i+1):
print '%d*%d=%d' % (j,i,i*j),
print '\n'
大家課后把for 改成while循環(huán)來(lái)實(shí)現(xiàn)
Python for循環(huán)語(yǔ)句
Python for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個(gè)列表或者一個(gè)字符串。
語(yǔ)法:
for循環(huán)的語(yǔ)法格式如下:
1 2 | for iterating_var in sequence: statements(s) |
流程圖:
實(shí)例:
1 2 3 4 5 6 7 | # -*- coding: UTF-8 -*- for letter in 'Python' : # 第一個(gè)實(shí)例 print '當(dāng)前字母 :' , letter fruits = [ 'banana' , 'apple' , 'mango' ] for fruit in fruits: # 第二個(gè)實(shí)例 print '當(dāng)前字母 :' , fruit print "Good bye!" |
以上實(shí)例輸出結(jié)果:
1 2 3 4 5 6 7 8 9 10 | 當(dāng)前字母 : P 當(dāng)前字母 : y 當(dāng)前字母 : t 當(dāng)前字母 : h 當(dāng)前字母 : o 當(dāng)前字母 : n 當(dāng)前字母 : banana 當(dāng)前字母 : apple 當(dāng)前字母 : mango Good bye! |
通過(guò)序列索引迭代(遍歷)
另外一種執(zhí)行循環(huán)的遍歷方式是通過(guò)索引,如下實(shí)例:
1 2 3 4 5 | # -*- coding: UTF-8 -*- fruits = [ 'banana' , 'apple' , 'mango' ] for index in range(len(fruits)): print '當(dāng)前水果 :' , fruits[index] print "Good bye!" |
以上實(shí)例輸出結(jié)果:
1 2 3 4 | 當(dāng)前水果 : banana 當(dāng)前水果 : apple 當(dāng)前水果 : mango Good bye! |
以上實(shí)例我們使用了內(nèi)置函數(shù) len() 和 range(),函數(shù) len() 返回列表的長(zhǎng)度,即元素的個(gè)數(shù)。 range返回一個(gè)序列的數(shù)。
實(shí)例:求1到100的和
1 2 3 4 | sum = 0 for x in range(101): sum = sum + x print sum |
實(shí)例:遍歷字典
1 2 3 | classmates = [ 'Madking' , 'Agon' , 'Michael' , 'Bob' , 'Tracy' ] for cls in classmates: print cls |
實(shí)例:從第一個(gè)列表中每次取出一個(gè),從第二個(gè)列表中也每次取出一個(gè),組合成一個(gè)新的列表,新列表中包含所有組合
1 2 3 4 5 6 7 | List1 = [ 'zi' , 'qiang' , 'xue' , 'tang' ] List2 = [1, 2] new_list = [] for m in List1: for n in List2: new_list.append([m, n]) print new_list |
實(shí)例:從一個(gè)列表中每次取出兩個(gè),找出所有組合方式
1 2 3 4 5 6 | List = [1, 2, 3, 4, 5] length = len(List) for x in range(0, length-1): for y in range(x+1, length): print List[x], List[y] |
實(shí)例:for循環(huán)輸出99乘法表
1 2 3 4 | for i in range(1,10): for j in range(1,i+1): print '%d*%d=%d' % (j,i,i*j), print '\n' |
大家課后把for 改成while循環(huán)來(lái)實(shí)現(xiàn)
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: