Python初學者入門隨筆 06 Python 循環(huán)語句

Python 循環(huán)語句

程序在一般情況下是按順序執(zhí)行的血巍。
編程語言提供了各種控制結(jié)構(gòu)渗勘,允許更復雜的執(zhí)行路徑殃饿。
循環(huán)語句允許我們執(zhí)行一個語句或語句組多次茄唐,下面是在大多數(shù)編程語言中的循環(huán)語句的一般形式:


image.png

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í)行流程圖如下:


image.png

Gif 演示 Python while 語句執(zhí)行過程:


image.gif

實例:
# -*- 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)

流程圖:


image.png

實例:

# -*- 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

流程圖:


image.png

實例:

# -*- 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

流程圖:


image.png

實例:

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 填充,使程序可以正常運行崩瓤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袍啡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子却桶,更是在濱河造成了極大的恐慌境输,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颖系,死亡現(xiàn)場離奇詭異嗅剖,居然都是意外死亡,警方通過查閱死者的電腦和手機嘁扼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門信粮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人趁啸,你說我怎么就攤上這事强缘《蕉瑁” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵旅掂,是天一觀的道長赏胚。 經(jīng)常有香客問我,道長商虐,這世上最難降的妖魔是什么觉阅? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮称龙,結(jié)果婚禮上留拾,老公的妹妹穿的比我還像新娘。我一直安慰自己鲫尊,他們只是感情好痴柔,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疫向,像睡著了一般咳蔚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搔驼,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天谈火,我揣著相機與錄音,去河邊找鬼舌涨。 笑死糯耍,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的囊嘉。 我是一名探鬼主播温技,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扭粱!你這毒婦竟也來了舵鳞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤琢蛤,失蹤者是張志新(化名)和其女友劉穎蜓堕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體博其,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡套才,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了慕淡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霜旧。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挂据,到底是詐尸還是另有隱情,我是刑警寧澤儿普,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布崎逃,位于F島的核電站,受9級特大地震影響眉孩,放射性物質(zhì)發(fā)生泄漏个绍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一浪汪、第九天 我趴在偏房一處隱蔽的房頂上張望巴柿。 院中可真熱鬧,春花似錦死遭、人聲如沸广恢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钉迷。三九已至,卻和暖如春钠署,著一層夾襖步出監(jiān)牢的瞬間糠聪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工谐鼎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舰蟆,地道東北人。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓狸棍,卻偏偏與公主長得像身害,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子隔缀,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Python 循環(huán)語句 程序在一般情況下是按順序執(zhí)行的题造。編程語言提供了各種控制結(jié)構(gòu),允許更復雜的執(zhí)行路徑猾瘸。循環(huán)語句...
    kina_chen閱讀 1,057評論 0 7
  • 條件與循環(huán)語句 條件與循環(huán)語句的表達式 在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中界赔,都要根據(jù)條件表達式的值來確定下一步的執(zhí)行流程,條件...
    backup備份閱讀 2,346評論 0 0
  • shuimian(睡眠) shimian(失眠)
    97ada0251d0b閱讀 292評論 0 0
  • 行者:那么人的存在跟生命是有意識體牵触,那么意識體經(jīng)過這一世淮悼,提升了意識體的層面了,意識體有層級嗎揽思? 丁師:應該有袜腥。因...
    文君45313閱讀 451評論 0 0
  • 企業(yè)名稱:海口美蘭美購城實業(yè)有限公司 【時間】始于2018/5/1持續(xù)于2019/4/30 日精進打卡第291天 ...
    楊慧裕閱讀 112評論 0 0