Talk is cheap, show me the code.
—— Linus Torvalds
目錄
控制流
用來(lái)控制程序的處理流程,即當(dāng)程序滿(mǎn)足或不滿(mǎn)足
某一條件時(shí)案怯,讓程序去做哪些事情。
控制流語(yǔ)句使得我們可以處理豐富的代碼邏輯澎办。
基本的控制流語(yǔ)句有三種嘲碱,分別是:
- if 條件語(yǔ)句
- for 循環(huán)語(yǔ)句
- while 循環(huán)語(yǔ)句
1,if 條件語(yǔ)句
if
語(yǔ)句用于判斷一個(gè)條件局蚀,當(dāng)條件為True
時(shí)麦锯,執(zhí)行一段代碼,當(dāng)條件為False
時(shí)琅绅,執(zhí)行另一段代碼扶欣。
if
語(yǔ)句有三種結(jié)構(gòu):
- 沒(méi)有分支
- 一個(gè)分支
- 多個(gè)分支
分支內(nèi)要執(zhí)行的語(yǔ)句,需要有縮進(jìn)
千扶,每個(gè)條件
后邊要有冒號(hào):
宵蛀,如下:
# 沒(méi)有分支
if 條件:
# 條件為T(mén)rue 時(shí)要執(zhí)行的語(yǔ)句
...
# 一個(gè)分支
if 條件:
# 條件為T(mén)rue 時(shí)要執(zhí)行的語(yǔ)句
...
else:
# 條件為False 時(shí)要執(zhí)行的語(yǔ)句
...
# 多個(gè)分支
if 條件1:
# 條件1 為T(mén)rue 時(shí)要執(zhí)行的語(yǔ)句
...
elif 條件2:
# 條件2 為T(mén)rue 時(shí)要執(zhí)行的語(yǔ)句
...
elif 條件3:
# 條件3 為T(mén)rue 時(shí)要執(zhí)行的語(yǔ)句
...
else:
# 條件1,條件2县貌,條件3 都為False 時(shí)要執(zhí)行的語(yǔ)句
...
多分支語(yǔ)句時(shí)术陶,如果有多個(gè)條件都為True
,則只會(huì)執(zhí)行第一個(gè)條件為True
內(nèi)的語(yǔ)句煤痕,其它條件為True
內(nèi)的語(yǔ)句不會(huì)執(zhí)行梧宫。
比如上面的多分支if 語(yǔ)句中:
- 如果
條件1
,條件2
摆碉,條件3
都為True
塘匣,則只會(huì)執(zhí)行條件1
內(nèi)的語(yǔ)句。 - 如果
條件1
為False
巷帝,條件2
忌卤,條件3
都為True
,則只會(huì)執(zhí)行條件2
內(nèi)的語(yǔ)句楞泼。
if
語(yǔ)句后邊的條件
驰徊,可帶括號(hào)()
,可不帶括號(hào)()
堕阔,如下是帶括號(hào)的:
# 帶括號(hào)的if 語(yǔ)句
if (條件):
...
if 語(yǔ)句嵌套
if
語(yǔ)句中還可以嵌套if
語(yǔ)句棍厂,下面是一個(gè)簡(jiǎn)單的if
嵌套語(yǔ)句結(jié)構(gòu):
if 條件1:
...
if 條件2:
...
...
示例,根據(jù)分?jǐn)?shù)
判斷等級(jí)
:
scores = ... # 分?jǐn)?shù)
grade = None # 等級(jí)
if scores > 90:
# 分?jǐn)?shù)大于90 時(shí)超陆,等級(jí)為優(yōu)秀
grade = '優(yōu)秀'
elif scores > 80:
# 分?jǐn)?shù)大于80 時(shí)牺弹,等級(jí)為良好
grade = '良好'
elif scores > 60:
# 分?jǐn)?shù)大于60 時(shí),等級(jí)為及格
grade = '及格'
else:
# 否則,等級(jí)為不及格
grade = '不及格'
2张漂,for 循環(huán)語(yǔ)句
Python 中的for
循環(huán)不同于C/C++
晶默,Java
中的for
循環(huán)。
Python 中的for
語(yǔ)句實(shí)際上是for...in
語(yǔ)句航攒,通常用于遍歷一個(gè)序列
荤胁,序列后邊要有一個(gè)冒號(hào):
。
說(shuō)明:
一個(gè)字符串
屎债,一個(gè)列表
,都是一個(gè)序列垢油。
字符串
和列表
盆驹,在后續(xù)章節(jié)會(huì)詳細(xì)介紹。
遍歷列表:
# l 是一個(gè)列表
l = [1, 2, 3]
# 遍歷列表
for i in l:
# i 是列表中的每個(gè)元素
print(i)
其輸出結(jié)果為:
1
2
3
遍歷字符串:
# s 是一個(gè)字符串
s = 'abc'
# 遍歷字符串中的字符
for i in s:
print(i)
其輸出結(jié)果為:
a
b
c
for 循環(huán)中的else
for
循環(huán)中也可以有一個(gè)else
語(yǔ)句滩愁,在for
循環(huán)執(zhí)行完之后躯喇,會(huì)在最后執(zhí)行else
語(yǔ)句:
# l 是一個(gè)列表
l = [1, 2, 3]
# 遍歷列表
for i in l:
# i 是列表中的每個(gè)元素
print(i)
else:
print('for 循環(huán)執(zhí)行結(jié)束')
其輸出結(jié)果如下:
1
2
3
for 循環(huán)執(zhí)行結(jié)束
當(dāng) for
循環(huán)的執(zhí)行過(guò)程中遇到break
語(yǔ)句,else
語(yǔ)句則不會(huì)被執(zhí)行:
l = [1, 2, 3]
for i in l:
print(i)
if i == 3:
# 當(dāng)i 為3 時(shí)硝枉,會(huì)執(zhí)行 break
break
else:
print('for 循環(huán)執(zhí)行結(jié)束')
該段代碼在執(zhí)行到i
為3
時(shí)廉丽,會(huì)執(zhí)行到break
語(yǔ)句,break
語(yǔ)句會(huì)跳出for
循環(huán)妻味,else
語(yǔ)句也是for
循環(huán)的一部分正压,所以,else
中的語(yǔ)句不會(huì)被執(zhí)行到责球。
其輸出結(jié)果如下:
1
2
3
注意:
break
語(yǔ)句會(huì)在下面介紹到焦履。
3,while 循環(huán)語(yǔ)句
下面是while
循環(huán)語(yǔ)句的語(yǔ)法格式雏逾,條件
后邊有一個(gè)冒號(hào):
嘉裤,如下:
while 條件:
# 條件為T(mén)rue 時(shí)要執(zhí)行的語(yǔ)句
...
...
while
語(yǔ)句的含義是,當(dāng)條件
為True
時(shí)栖博,會(huì)一直執(zhí)行while
循環(huán)中的代碼屑宠,直到某一時(shí)刻條件
變?yōu)榱?code>False。
每次在執(zhí)行while
循環(huán)體內(nèi)的語(yǔ)句塊之前仇让,都會(huì)判斷條件
典奉,如果條件
為True
,則執(zhí)行循環(huán)體丧叽,如果條件
為False
秋柄,則退出循環(huán)體。
示例:
i = 3
while i > 0:
print(i)
i = i - 1
這段代碼的輸出結(jié)果為:
3
2
1
當(dāng)i
減到0
時(shí)蠢正,i > 0
為False
骇笔,此時(shí)while
循環(huán)結(jié)束。
while 循環(huán)中else
while
循環(huán)也與for
循環(huán)一樣,可以有else
語(yǔ)句:
while 條件:
...
else:
...
無(wú)限循環(huán)
無(wú)限循環(huán)
是一個(gè)特殊的循環(huán)笨触,其條件
永遠(yuǎn)為真
懦傍,如下就是一個(gè)無(wú)限循環(huán):
while True:
...
...
只要無(wú)限循環(huán)中的語(yǔ)句沒(méi)有主動(dòng)退出
,或者遇到異常
芦劣,則無(wú)限循環(huán)中的語(yǔ)句將永遠(yuǎn)執(zhí)行下去粗俱。
4,continue 語(yǔ)句
continue
語(yǔ)句用在for
循環(huán)和while
循環(huán)中虚吟,當(dāng)遇到continue
語(yǔ)句時(shí)寸认,會(huì)跳到循環(huán)的開(kāi)頭執(zhí)行。
示例:
i = 3
while i > 0:
i = i - 1
if i == 2:
print('跳到循環(huán)開(kāi)頭')
continue
print(i)
其輸出如下:
跳到循環(huán)開(kāi)頭
1
0
當(dāng)i == 2
時(shí)串慰,執(zhí)行完print('跳到循環(huán)開(kāi)頭')
后偏塞,執(zhí)行continue
語(yǔ)句,然后跳到循環(huán)開(kāi)頭執(zhí)行邦鲫,所以灸叼,i == 2
時(shí),沒(méi)有執(zhí)行print(i)
庆捺。
5古今,break 語(yǔ)句
break
語(yǔ)句也是用在for
循環(huán)和while
循環(huán)中,當(dāng)遇到break
語(yǔ)句時(shí)滔以,會(huì)跳出循環(huán)體捉腥。
示例:
i = 3
while i > 0:
i = i - 1
if i == 0:
print('跳出循環(huán)')
break
print(i)
其輸出結(jié)果如下:
2
1
跳出循環(huán)
當(dāng)i == 0
時(shí),執(zhí)行完print('跳出循環(huán)')
后你画,執(zhí)行break
語(yǔ)句但狭,然后跳出循環(huán),所以撬即,i == 0
時(shí)立磁,沒(méi)有執(zhí)行print(i)
。
6剥槐,pass 語(yǔ)句
pass
語(yǔ)句經(jīng)常在控制流中用到唱歧,pass
語(yǔ)句是一個(gè)空語(yǔ)句
,不執(zhí)行任何東西粒竖,只起到一個(gè)占位的作用颅崩。
示例:
i = ...
if i == 0:
# 做任何事情
pass
else:
print('i 不為 0')
(完。)
推薦閱讀:
Python 簡(jiǎn)明教程 --- 1蕊苗,搭建Python 環(huán)境
Python 簡(jiǎn)明教程 --- 2沿后,第一個(gè)Python 程序
Python 簡(jiǎn)明教程 --- 3,Python 基礎(chǔ)概念
Python 簡(jiǎn)明教程 --- 4朽砰,Python 變量與基本數(shù)據(jù)類(lèi)型
Python 簡(jiǎn)明教程 --- 5尖滚,Python 表達(dá)式與運(yùn)算符