我們?cè)谏钪刑幚韱栴}的時(shí)候谈截,總是需要判斷這件事應(yīng)不應(yīng)該做,計(jì)算機(jī)在處理問題的時(shí)候也需要做判斷涧偷,根據(jù)判斷結(jié)果控制程序流程簸喂。
比如,有一個(gè)分段函數(shù)
當(dāng)x<-1時(shí)燎潮,f(x) = 2-x
當(dāng)1<=x<=1/2時(shí)喻鳄,f(x) = -3x
當(dāng)x>1/2時(shí),f(x) = x-2
我們要實(shí)現(xiàn)這個(gè)函數(shù)的時(shí)候确封,就需要使用條件判斷除呵。舉個(gè)例子:
x = 1 #先定義x
if x<-1: #如果x<-1
y = 2-x #則y = 2-x
elif 1<=x<=1/2: #如果1<=x<=1/2
y = -3*x #則y = -3x
else: #剩余的情況
y = x-2 #y = x-2
print(y)
在python中,有三種判斷方法:
- if語句
當(dāng)只需要判斷一種情況時(shí)爪喘,我們使用if語句
if (條件表達(dá)式1):
執(zhí)行語句1
執(zhí)行語句2
……
當(dāng)使用if語句的時(shí)候颜曾,程序先判斷“條件表達(dá)式1”,如果表達(dá)式為真秉剑,則執(zhí)行下面的“執(zhí)行語句1”泛豪、“執(zhí)行語句2”和后續(xù)的語句。
需要注意的是:執(zhí)行語句前要加四個(gè)空格,這是python中的縮進(jìn)诡曙,具有共同縮進(jìn)的語句臀叙,為同一個(gè)整體。也就是說价卤,上面例子中的“執(zhí)行語句1”和“執(zhí)行語句2”是同一個(gè)整體劝萤,如果“條件表達(dá)式1”為真,那么將按順序依次執(zhí)行“執(zhí)行語句1”慎璧,“執(zhí)行語句2”和……
舉個(gè)例子:
age = 30
if age>=18:
print('He is an adult.')
print('finished.')
我們運(yùn)行這個(gè)例子床嫌,得到的是:
He is an adult.
finished.
因?yàn)閍ge的值是30,大于等于18胸私,條件表達(dá)式age>=18
為True既鞠,因此執(zhí)行下面的語句print('He is an adult.')
。執(zhí)行后選擇結(jié)構(gòu)就徹底執(zhí)行完畢了盖文,接著繼續(xù)執(zhí)行程序,print('finished.')
蚯姆,所以我們看到的結(jié)果有兩句話五续。如果age = 6,那么結(jié)果就是:
finished.
條件表達(dá)式age>=18
為False龄恋,不執(zhí)行下屬的執(zhí)行語句疙驾,選擇結(jié)構(gòu)執(zhí)行完畢,繼續(xù)執(zhí)行程序郭毕,print('finished.')
它碎,所以結(jié)果就只有這一句。
- if else語句
有時(shí)候我們需要判斷并執(zhí)行兩種情況显押,如果滿足A扳肛,就執(zhí)行什么東西,不滿足乘碑,就執(zhí)行另一種東西挖息。
if (條件表達(dá)式1):
執(zhí)行語句1
else:
執(zhí)行語句2
如果“條件表達(dá)式1”為真,則執(zhí)行“執(zhí)行語句1”兽肤,如果“條件表達(dá)式1”為假套腹,則執(zhí)行“執(zhí)行語句2”。舉個(gè)例子:
age = 30
if age>=18:
print('adult')
else:
print('minor')
如果age>=18资铡,則打印'adult'电禀,反之,打印'minor'笤休。
- if elif else語句
有時(shí)候尖飞,我們需要判斷的情況有很多種,這時(shí)候就需要if elif else語句了。
if (條件表達(dá)式1):
執(zhí)行語句1
elif (條件表達(dá)式2):
執(zhí)行語句2
else:
執(zhí)行語句3
判斷“條件表達(dá)式1”葫松,為True瓦糕,執(zhí)行“執(zhí)行語句1”,為False腋么,判斷“條件表達(dá)式2”咕娄,為True,執(zhí)行“執(zhí)行語句2”珊擂,為False圣勒,執(zhí)行“執(zhí)行語句3”。
在if elif else語句中摧扇,elif的個(gè)數(shù)是不限的圣贸,可以加很多個(gè)elif,但是if和else都只能有一個(gè)扛稽。例子就是開頭的那個(gè)分段函數(shù)的例子吁峻。
需要注意的是,else一定要與前面的if對(duì)應(yīng)在张,也就是具有相同的縮進(jìn)用含,以表示他們兩個(gè)是一組的。
有些時(shí)候帮匾,可以寫成
if x:
執(zhí)行語句1
當(dāng)x是非零數(shù)值啄骇、非空字符串、非空列表瘟斜、元組缸夹、字典、集合時(shí)螺句,執(zhí)行下面的"執(zhí)行語句1"虽惭。
if x:
print(x,'True')
else:
print(x,'False')
以下是當(dāng)x分別為0, -1, 1, '', 'a', [], (), [1], 1, None, True, False時(shí)的打印結(jié)果。
0 False
-1 True
1 True
False
a True
[] False
() False
[1] True
1 True
None False
True True
False False
規(guī)律就是
· 數(shù)字里面蛇尚,除了0都是True趟妥,0是False
· 非空的字符串,列表佣蓉,元組等披摄,都是True,空是False
· None是False
以上就是python中的選擇結(jié)構(gòu)勇凭。