4. Python 分支皂林、循環(huán)與異常處理

程序的基本結構

  • 程序有3種基本結構組成:順序結構揩抡、分支結構和循環(huán)結構
  1. 順序結構:程序按照線性順序依次執(zhí)行
  2. 分支結構:程序根據條件判斷結果而選擇不同向前執(zhí)行路徑的一種運行方式
  3. 循環(huán)結構:程序根據條件判斷結果向后反復執(zhí)行(根據觸發(fā)條件不同般堆,循環(huán)結構包括條件循環(huán)和遍歷循環(huán))

分支結構

單分支機構:if語句

if語句語法格式:

if <條件>:
    <語句塊>
  • 語句塊是if條件滿足后執(zhí)行的一個或多個語句序列
  • 語句塊中語句通過與if所在行形成縮進表達包含關系
  • if語句首先評估條件的結果值转培,若為Ture則執(zhí)行語句塊中的語句序列耿芹;若為False則跳過語句塊中的語句
  • if語句中條件部分可以使用任何能夠產生Ture或False的語句或函數

形成判斷條件最常見的方式是采用關系操作符

關系操作符 數學符號 操作符含義
< < 小于
> > 大于
<= 小于等于
>= 大于等于
== = 等于
!= 不等于
  • Python使用"="表示賦值語句崭篡,使用"=="表示等于

二分支結構:if-else語句

if-else語句語法格式:

if <條件>:
    <語句塊1>
else <條件>:
    <語句塊2>
  • 二分支語句用于區(qū)分條件的兩種可能
  • if條件滿足時執(zhí)行語句塊1
  • if條件不滿足時執(zhí)行語句塊2

二分支結構的簡潔表達(適合通過判斷返回特定值)

<表達式1> if <條件> else <表達式2>

表達式1h和表達式2一般是數字類型或字符串類型的一個值

多分支結構:if-elif-else語句

if-elif-else語句語法格式:

if <條件1>:
    <語句塊1>
elif <條件2>:
    <語句塊2>
...
else:
    <語句塊N>
  • Python依次評估尋找第一個結果為Ture的條件,執(zhí)行該條件下的語句并跳過整個if-elif-else結構吧秕,執(zhí)行后面的語句
  • 如果沒有任何條件成立媚送,執(zhí)行else下面的語句塊
  • else語句是可選的

循環(huán)結構

遍歷循環(huán):for語句

for語句語法格式

for <循環(huán)變量> in <遍歷結構>:
    <語句塊>
  • 遍歷循環(huán)可以理解為從遍歷結構中中逐一提取元素,放在循環(huán)變量中寇甸,對于所提取的每個元素執(zhí)行一次語句塊

循環(huán)N次:

for i in rang(N):
    <語句塊>

遍歷文件的每一行:

for line in fi:
    <語句塊>

遍歷字符串s

for c in s:
    <語句塊>

遍歷列表ls

for item in ls:
    <語句塊>

遍歷循環(huán)的擴展模式

for <循環(huán)變量> in <遍歷結構>:
    <語句塊1>
else:
    <語句塊2>

當for循環(huán)正常執(zhí)行后塘偎,程序會繼續(xù)執(zhí)行else語句

遍歷循環(huán):while語句

while語句語法格式

while <條件>:
    <語句塊>
  • 當條件判斷為Ture時,循環(huán)體重復執(zhí)行語句塊中的語句拿霉;當條件為Flase時吟秩,循環(huán)終止,執(zhí)行與while同級別縮進的后續(xù)語句

無限循環(huán)的擴展模式

while <條件>:
    <語句塊1>
else:
    <語句塊2>
  • 當while循環(huán)正常執(zhí)行后绽淘,程序會繼續(xù)執(zhí)行else語句中的內容涵防,else語句只在循環(huán)正常執(zhí)行后才執(zhí)行

循環(huán)保留字:break和continue

  • break用來跳出最內層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)代碼后繼續(xù)執(zhí)行
  • continue用來結束當前當次循環(huán)沪铭,即跳出循環(huán)體中下面尚未執(zhí)行的語句壮池,但不跳出當前循環(huán)
for s in "BIT":
    for i in rang(2):
        print(s,end="")
        if s=="I":
            break
            
>>>BBTT
  • break語句與continue語句的區(qū)別是,break語句結束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立杀怠;continue語句只結束本次循環(huán)椰憋,而不終止整個循環(huán)的執(zhí)行

for循環(huán)和while循環(huán)中都有一個else擴展用法。else語句僅在循環(huán)正常遍歷了所有內容或由于條件不成立而結束循環(huán)的條件下執(zhí)行赔退。

for s in "PYTHON":
    if s =="T":
        continue
    print(s,end="")
else:
    print("正常退出")
>>>
PYHON 正常退出
for s in "PYTHON":
    if s =="T":
        break
    print(s,end="")
else:
    print("正常退出")
>>>
PY

異常處理

Python通過try橙依、except等保留字提供異常處理功能

異常處理:try-except語句

  • Python使用try-except語句實現異常處理
try:
    <語句塊1>
except <異常類型>:
    <語句塊2>

異常的高級用法

  • try-except語句可以支持多個except語句
try:
    <語句塊1>
except <異常類型1>:
    <語句塊2>
...
except <異常類型N>:
    <語句塊N+1>
except <異常類型N+!>:
    <語句塊N+2>
  • 異常語句還可以與else和finally保留字配合使用
try:
    <語句塊1>:
except <異常類型1>:
    <語句塊2>
else:
    <語句塊3>
finally:
    <語句塊4>
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市硕旗,隨后出現的幾起案子窗骑,更是在濱河造成了極大的恐慌,老刑警劉巖漆枚,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件创译,死亡現場離奇詭異,居然都是意外死亡墙基,警方通過查閱死者的電腦和手機软族,發(fā)現死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門辛藻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人互订,你說我怎么就攤上這事吱肌。” “怎么了仰禽?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵氮墨,是天一觀的道長。 經常有香客問我吐葵,道長规揪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任温峭,我火速辦了婚禮猛铅,結果婚禮上,老公的妹妹穿的比我還像新娘凤藏。我一直安慰自己奸忽,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布揖庄。 她就那樣靜靜地躺著栗菜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹄梢。 梳的紋絲不亂的頭發(fā)上疙筹,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音禁炒,去河邊找鬼而咆。 笑死,一個胖子當著我的面吹牛幕袱,可吹牛的內容都是我干的暴备。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼凹蜂,長吁一口氣:“原來是場噩夢啊……” “哼馍驯!你這毒婦竟也來了?” 一聲冷哼從身側響起玛痊,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狂打,沒想到半個月后擂煞,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡趴乡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年对省,在試婚紗的時候發(fā)現自己被綠了蝗拿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒿涎,死狀恐怖哀托,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情劳秋,我是刑警寧澤仓手,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站玻淑,受9級特大地震影響嗽冒,放射性物質發(fā)生泄漏。R本人自食惡果不足惜补履,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一添坊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箫锤,春花似錦贬蛙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至五鲫,卻和暖如春溺职,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背位喂。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工浪耘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人塑崖。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓七冲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親规婆。 傳聞我的和親對象是個殘疾皇子澜躺,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,151評論 0 13
  • 基于《Python語言程序設計基礎(第2版)》 第一部分 初識Python語言 第1章 程序設計基本方法 1.1 ...
    柄志閱讀 27,401評論 4 44
  • 原創(chuàng)日記(2) 春節(jié)期間大家都大魚大肉抒蚜,大吃大喝掘鄙,各種冷飲美食,天天胡吃海喝的嗡髓。很多不想長肉肉的朋友沒有經住這些美...
    黑金公主閱讀 628評論 2 4
  • 《價格游戲》 001以9結尾 打折促銷商品以9結尾操漠,心理學標明,人的大腦為了方便選擇會自動給價格分組饿这,19.9自然...
    月光甜的夏天閱讀 762評論 0 0