Python 循環(huán)語句
程序在一般情況下是按順序執(zhí)行的血巍。
編程語言提供了各種控制結(jié)構(gòu)渗勘,允許更復雜的執(zhí)行路徑殃饿。
循環(huán)語句允許我們執(zhí)行一個語句或語句組多次茄唐,下面是在大多數(shù)編程語言中的循環(huán)語句的一般形式:
Python 提供了 for 循環(huán)和 while 循環(huán)(在 Python 中沒有 do..while 循環(huán)):
循環(huán)類型 | 描述 |
---|---|
while 循環(huán) | 在給定的判斷條件為 true 時執(zhí)行循環(huán)體张惹,否則退出循環(huán)體舀锨。 |
for 循環(huán) | 重復執(zhí)行語句 |
嵌套循環(huán) | 你可以在 while 循環(huán)體中嵌套 for 循環(huán) |
循環(huán)控制語句
循環(huán)控制語句可以更改語句執(zhí)行的順序。Python 支持以下循環(huán)控制語句:
控制語句 | 描述 |
---|---|
break 語句 | 在語句塊執(zhí)行過程中終止循環(huán)宛逗,并且跳出整個循環(huán)坎匿。 |
continue 語句 | 在語句塊執(zhí)行過程中終止當前循環(huán),跳出該次循環(huán)雷激,執(zhí)行下一次循環(huán)替蔬。 |
pass 語句 | pass是空語句,是為了保持程序結(jié)構(gòu)的完整性屎暇。 |
Python While 循環(huán)語句
Python 編程中 while 語句用于循環(huán)執(zhí)行程序承桥,即在某條件下,循環(huán)執(zhí)行某段程序根悼,以處理需要重復處理的相同任務凶异。其基本形式為:
while 判斷條件:
執(zhí)行語句……
執(zhí)行語句可以是單個語句或語句塊蜀撑。判斷條件可以是任何表達式,任何非零唠帝、或非空(null)的值均為 true屯掖。
當判斷條件假 false 時,循環(huán)結(jié)束襟衰。
執(zhí)行流程圖如下:
Gif 演示 Python while 語句執(zhí)行過程:
實例:
# -*- coding: UTF-8 -*-
count = 0
while count < 9:
print 'The count is:', count
count = count + 1
print "Good bye!"
以上代碼執(zhí)行輸出結(jié)果:
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
while 語句時還有另外兩個重要的命令 continue贴铜,break 來跳過循環(huán),continue 用于跳過該次循環(huán)瀑晒,break 則是用于退出循環(huán)绍坝,此外"判斷條件"還可以是個常值,表示循環(huán)必定成立苔悦,具體用法如下:
# -*- coding: UTF-8 -*-
# continue 和 break 用法
i = 1
while i < 10:
i += 1
if i % 2 > 0: # 非雙數(shù)時跳過輸出
continue
print i # 輸出雙數(shù)2轩褐、4、6玖详、8把介、10
i = 1
while 1: # 循環(huán)條件為1必定成立
print i # 輸出1~10
i += 1
if i > 10: # 當i大于10時跳出循環(huán)
break
無限循環(huán)
如果條件判斷語句永遠為 true,循環(huán)將會無限的執(zhí)行下去蟋座,如下實例:
# -*- coding: UTF-8 -*-
var = 1
while var == 1: # 該條件永遠為true拗踢,循環(huán)將無限執(zhí)行下去
num = raw_input("Enter a number :")
print "You entered: ", num
print "Good bye!"
注意:以上的無限循環(huán)你可以使用 CTRL+C 來中斷循環(huán)。
循環(huán)使用 else 語句
在 python 中向臀,while … else 在循環(huán)條件為 false 時執(zhí)行 else 語句塊:
# -*- coding: UTF-8 -*-
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
以上實例輸出結(jié)果為:
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
簡單語句組
類似 if 語句的語法巢墅,如果你的 while 循環(huán)體中只有一條語句,你可以將該語句與while寫在同一行中券膀, 如下所示:
# -*- coding: UTF-8 -*-
flag = 1
while flag: print 'Given flag is really true!'
print "Good bye!"
注意:以上的無限循環(huán)你可以使用 CTRL+C 來中斷循環(huán)君纫。
Python for 循環(huán)語句
Python for 循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串芹彬。
for 循環(huán)的語法格式如下:
for iterating_var in sequence:
statements(s)
流程圖:
實例:
# -*- coding: UTF-8 -*-
for letter in 'Python': # 第一個實例
print '當前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二個實例
print '當前水果 :', fruit
print "Good bye!"
以上實例輸出結(jié)果:
當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : h
當前字母 : o
當前字母 : n
當前水果 : banana
當前水果 : apple
當前水果 : mango
Good bye!
通過序列索引迭代
另外一種執(zhí)行循環(huán)的遍歷方式是通過索引蓄髓,如下實例:
# -*- coding: UTF-8 -*-
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '當前水果 :', fruits[index]
print "Good bye!"
以上實例我們使用了內(nèi)置函數(shù) len() 和 range(),函數(shù) len() 返回列表的長度舒帮,即元素的個數(shù)双吆。 range() 函數(shù)可創(chuàng)建一個整數(shù)列表,一般用在 for 循環(huán)中会前。
以上實例輸出結(jié)果:
當前水果 : banana
當前水果 : apple
當前水果 : mango
Good bye!
循環(huán)使用 else 語句
在 python 中,for … else 表示這樣的意思:for 中的語句和普通的沒有區(qū)別匾竿,else 中的語句會在循環(huán)正常執(zhí)行完(即 for 不是通過 break 跳出而中斷的)的情況下執(zhí)行瓦宜,while … else 也是一樣。
實例:
for num in range(10, 20): # 迭代 10 到 20 之間的數(shù)字
for i in range(2, num): # 根據(jù)因子迭代
if num % i == 0: # 確定第一個因子
j = num / i # 計算第二個因子
print '%d 等于 %d * %d' % (num, i, j)
break # 跳出當前循環(huán)
else: # 循環(huán)的 else 部分
print num, '是一個質(zhì)數(shù)'
以上實例輸出結(jié)果:
10 等于 2 * 5
11 是一個質(zhì)數(shù)
12 等于 2 * 6
13 是一個質(zhì)數(shù)
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一個質(zhì)數(shù)
18 等于 2 * 9
19 是一個質(zhì)數(shù)
Python 循環(huán)嵌套
Python 語言允許在一個循環(huán)體里面嵌入另一個循環(huán)岭妖。
Python for 循環(huán)嵌套語法:
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
Python while 循環(huán)嵌套語法:
while expression:
while expression:
statement(s)
statement(s)
你可以在循環(huán)體內(nèi)嵌入其他的循環(huán)體临庇,如在 while循環(huán) 中可以嵌入 for循環(huán)反璃, 反之,你可以在 for循環(huán) 中嵌入 while循環(huán)假夺。
實例:
以下實例使用了嵌套循環(huán)輸出 2~100 之間的素數(shù):
# -*- coding: UTF-8 -*-
i = 2
while i < 100:
j = 2
while j <= (i / j):
if not (i % j): break
j = j + 1
if j > i / j: print i, " 是素數(shù)"
i = i + 1
print "Good bye!"
以上實例輸出結(jié)果:
2 是素數(shù)
3 是素數(shù)
5 是素數(shù)
7 是素數(shù)
11 是素數(shù)
13 是素數(shù)
17 是素數(shù)
19 是素數(shù)
23 是素數(shù)
29 是素數(shù)
31 是素數(shù)
37 是素數(shù)
41 是素數(shù)
43 是素數(shù)
47 是素數(shù)
53 是素數(shù)
59 是素數(shù)
61 是素數(shù)
67 是素數(shù)
71 是素數(shù)
73 是素數(shù)
79 是素數(shù)
83 是素數(shù)
89 是素數(shù)
97 是素數(shù)
Good bye!
Python break 語句
Python break 語句淮蜈,就像在 C語言 中,打破了最小封閉 for 或 while 循環(huán)已卷。
break 語句用來終止循環(huán)語句梧田,即循環(huán)條件沒有 False 條件或者序列還沒被完全遞歸完,也會停止執(zhí)行循環(huán)語句侧蘸。
break 語句用在 while 和 for 循環(huán)中裁眯。
如果您使用嵌套循環(huán),break 語句將停止執(zhí)行最深層的循環(huán)讳癌,并開始執(zhí)行下一行代碼穿稳。
Python 語言 break 語句語法:
break
流程圖:
實例:
# -*- coding: UTF-8 -*-
for letter in 'Python': # 第一個實例
if letter == 'h':
break
print '當前字母 :', letter
var = 10 # 第二個實例
while var > 0:
print '當前變量值 :', var
var = var - 1
if var == 5: # 當變量 var 等于 5 時退出循環(huán)
break
print "Good bye!"
以上實例執(zhí)行結(jié)果:
當前字母 : P
當前字母 : y
當前字母 : t
當前變量值 : 10
當前變量值 : 9
當前變量值 : 8
當前變量值 : 7
當前變量值 : 6
Good bye!
Python continue 語句
Python continue 語句跳出本次循環(huán),而break跳出整個循環(huán)晌坤。
continue 語句用來告訴 Python 跳過當前循環(huán)的剩余語句逢艘,然后繼續(xù)進行下一輪循環(huán)。
continue 語句用在 while 和 for 循環(huán)中骤菠。
Python 語言 continue 語句語法格式如下:
continue
流程圖:
實例:
for letter in 'Python': # 第一個實例
if letter == 'h':
continue
print '當前字母 :', letter
var = 10 # 第二個實例
while var > 0:
var = var - 1
if var == 5:
continue
print '當前變量值 :', var
print "Good bye!"
以上實例執(zhí)行結(jié)果:
當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : o
當前字母 : n
當前變量值 : 9
當前變量值 : 8
當前變量值 : 7
當前變量值 : 6
當前變量值 : 4
當前變量值 : 3
當前變量值 : 2
當前變量值 : 1
當前變量值 : 0
Good bye!
Python pass 語句
Python pass 是空語句它改,是為了保持程序結(jié)構(gòu)的完整性。
pass 不做任何事情娩怎,一般用做占位語句搔课。
Python 語言 pass 語句語法格式如下:
pass
實例:
# -*- coding: UTF-8 -*-
# 輸出 Python 的每個字母
for letter in 'Python':
if letter == 'h':
pass
print '這是 pass 塊'
else:
print '當前字母 :', letter
print "Good bye!"
以上實例執(zhí)行結(jié)果:
當前字母 : P
當前字母 : y
當前字母 : t
這是 pass 塊
當前字母 : o
當前字母 : n
Good bye!
pass 一般用于占位置。
在 Python 中有時候會看到一個 def 函數(shù):
def sample(n_samples):
pass
該處的 pass 便是占據(jù)一個位置截亦,因為如果定義一個空函數(shù)程序會報錯爬泥,當你沒有想好函數(shù)的內(nèi)容是可以用 pass 填充,使程序可以正常運行崩瓤。