在Python中赊瞬,我們輸入的程序是一行一行的,Python來執(zhí)行我們的程序時裸燎,一般也是從上到下一行一行順序執(zhí)行的竟趾。但也有時候會出現(xiàn)不是這樣順序執(zhí)行的情況憔购,常見的非順序執(zhí)行的情況包括所謂的“條件判斷分支”和“循環(huán)”。下面我們直接用一個例子來解釋什么叫做“條件判斷分支”:
a = 10
b = 15
if a > b:
??? print(a - b)
else:
??? print(b - a)
我們輸入上面這一段代碼岔帽,注意其中有縮進(jìn)的地方要用一個“Tab”來進(jìn)行(也就是按一次鍵盤上的“Tab”鍵)玫鸟,執(zhí)行這段代碼之后得到結(jié)果是5,如果我們讓a = 15犀勒, b = 10鞋邑,得到的結(jié)果也是一樣的。這就是條件判斷分支的作用账蓉,代碼中從“if”(英語中“如果”的意思)開始是一個條件判斷語句,其含義是:如果a>b逾一,那么就執(zhí)行緊接下來縮進(jìn)的一段代碼铸本,這里是print(a - b),也就是輸出a-b的結(jié)果數(shù)值遵堵;否則(else是英語“否則”的意思)執(zhí)行else下面縮進(jìn)的代碼箱玷,即print(b - a),也就是輸出b-a的結(jié)果數(shù)值陌宿。所以整段代碼的作用實(shí)際上相當(dāng)于輸出了一個a-b的絕對值锡足。注意條件判斷語句if和else結(jié)尾,都需要加上一個冒號“:”壳坪,這是Python中編寫條件判斷分支的一個約定舶得。
可以看到,程序從開始順序執(zhí)行到“if”開頭的語句時爽蝴,就出現(xiàn)了所謂的“分支”情況沐批,程序會判斷一個條件“a是否大于b”,滿足條件則走緊接著的程序分支蝎亚,不滿足條件則走“else”下面這個分支九孩,無論走哪個分支,執(zhí)行完該分支代碼之后发框,不會再執(zhí)行其它分支的程序語句躺彬。如果條件判斷后還有其它語句,則會繼續(xù)順序往下執(zhí)行。
條件判斷分支還有一種情況宪拥,看看下面的例子:
a = 10
b = 10
if a > b:
??? print(a - b)
elif a < b:
??? print(b - a)
else:
??? print("a=b")
和前一個例子不同的是仿野,多了一個“elif”的判斷分支語句,“elif”是“else if”的簡寫江解,整段條件分支代碼的意思是:如果a>b设预,就執(zhí)行print(a - b);否則繼續(xù)進(jìn)行判斷犁河,如果a<b鳖枕,就執(zhí)行print(b - a),否則就執(zhí)行最后這句print("a=b")桨螺,也就是當(dāng)a=b的時候(a及不小于b也不大于b宾符,那就只能等于b)輸出“a=b”這一個字符串。
注意灭翔,條件分支中可以執(zhí)行多條語句魏烫,多條語句應(yīng)該在同一個縮進(jìn)級別上,例如:
a = 15
b = 10
if a > b:
??? print("a > b")
??? print(a - b)
elif a < b:
??? print(b - a)
else:
??? print("a=b")
上面這段代碼肝箱,在滿足a>b的條件時哄褒,將順序執(zhí)行print("a > b")和print(a - b)這兩條語句;而這兩條語句書寫時都要加上一個Tab縮進(jìn)煌张。
條件判斷分支也可以“嵌套”呐赡,也就是在某一個分支中,又出現(xiàn)了條件判斷的情況骏融,例如剛才的例子链嘀,可以用嵌套分支的寫法寫成這樣:
a = 10
b = 10
if a > b:
??? print("a > b")
??? print(a - b)
else:
??? if a == b:
??????? print("a=b")
??? else:
??????? print(b - a)
這段代碼中,在else這個分支中档玻,又出現(xiàn)了一個條件判斷分支的情況怀泊,我們在前面a不大于b的情況下,再一次判斷a是小于b還是等于b误趴,并做出不同的分支處理霹琼。這段代碼執(zhí)行的結(jié)果和前面的作用是一樣的。注意凉当,判斷a是否和b相等時碧囊,我們使用了“a == b”這樣的表達(dá)式,也就是說用兩個等號連起來寫的“==”符號用于判斷符號左右的兩個表達(dá)式的值是否相等纤怒,這是為了和變量賦值時的單個等號區(qū)別開來糯而。注意,如果出現(xiàn)嵌套情況泊窘,第二層嵌套的分支語句熄驼,要多縮進(jìn)一級像寒,也就是說,像例子中print(b - a)這條語句瓜贾,前面要加上兩個Tab诺祸。
另外,Python中規(guī)定祭芦,代碼縮進(jìn)可以用Tab筷笨,也可以用相同的幾個連續(xù)空格(一般用兩個空格)來代替。但整個程序要統(tǒng)一縮進(jìn)方式龟劲,也就是說胃夏,要么全部用Tab來縮進(jìn),要么全部用空格來縮進(jìn)昌跌。我們建議一般用Tab來縮進(jìn)方便一些仰禀。