流程圖是什么:請跟著箭頭指示往下走澳厢,程序就像走流程一樣完成工作坷随。
言歸正傳:咱們先看下python語言中條件判斷 if 是什么枣申?
If語句共有三個(gè)知識(shí)點(diǎn):
if...
if...else...
if...elif...else...
一屡久、if 【如果】的邏輯:
我們以《西游記》中忆首,唐僧師徒在女兒國的遭遇為例來講解。但是為了學(xué)習(xí)python編程被环,會(huì)適當(dāng)?shù)馗木幰幌聞∏椤?/p>
話說唐三藏師徒一行人來到西梁女兒國糙及,本想照驗(yàn)通關(guān)文牒,早日放行筛欢,誰知女兒國國王對唐僧一見傾心浸锨。
可是女王畢竟不是尋常人家的女子,她也有自己的為難之處版姑。
這天午后柱搜,她一會(huì)游蕩在御花園里,一會(huì)呆坐在宮殿里剥险,糾結(jié)著貴為一國之君的自己聪蘸,和已斬?cái)嗉t塵的出家人唐僧到底是否合適。
在思考了大半天之后,她自言自語道:上天啊健爬,我也很糾結(jié)控乾,要不你來幫我決定吧。如果今晚下雨了浑劳,那就說明我和唐三藏合適阱持,可以在一起夭拌。
此種情況魔熏,在Python中,可以這樣表述:
1? weather = input('請回答:今晚下雨or沒下雨')
2??if weather == '下雨':
3??????print('我和唐僧可以在一起鸽扁。')
請問蒜绽,你發(fā)現(xiàn)了么,當(dāng)輸入“下雨”時(shí)桶现,程序會(huì)給出“我和唐僧可以在一起”的回復(fù)躲雅;但如果輸入“不下雨”,程序什么也不會(huì)出現(xiàn)骡和。因?yàn)檫@不滿足下一行代碼的要求相赁!
所以我們需要重新審視下if語句的使用邏輯:
if ...(條件):?
?...(做點(diǎn)兒什么)?
?...(做點(diǎn)兒什么)...
(if語句的外部命令)
if 后面跟的是一個(gè)條件。當(dāng)條件為真時(shí)慰于,就執(zhí)行內(nèi)部縮進(jìn)的命令(做點(diǎn)兒什么)钮科;如果條件為假,不管婆赠,跳過if绵脯,去執(zhí)行if語句的外部命令。
用流程圖理解即為:
二妙黍、if...else?的【如果-否則】的邏輯:
回到女王的故事上面來悴侵。女王自己設(shè)定的是,如果晚上下雨拭嫁,那么就表示畜挨,上天覺得女王可以和唐僧在一起。
你猜晚上下雨了嗎噩凹?(⊙v⊙)嗯巴元,下雨了。好驮宴,下一步逮刨,女王決定表白。
可是到了第二天早上,女王開始糾結(jié)新的東西——表白的結(jié)果修己。
唐僧如果答應(yīng)了表白恢总,當(dāng)然好,自己愿意和他馬上成婚睬愤;但是如果唐僧沒有答應(yīng)的話片仿,是不是可以采取一些武力的手段呢?畢竟唐僧所處的行政區(qū)域正是自己管轄的領(lǐng)土尤辱,大唐的皇帝也管不到這么遠(yuǎn)砂豌。
這個(gè)邏輯如果體現(xiàn)在Python中,是這樣的:
1?answer = input('唐僧接受了表白嗎光督?請回答有or沒有阳距?')
2?if answer == '有':
3?????? ? ? print('很好,馬上舉行婚禮结借,全國放假')
4?else:? ?
?5? ? ? ???print('把唐僧軟禁起來筐摘,從長計(jì)議')
(else代表否則如果)
所以 if...else...的使用邏輯也出來了。
1 if...(條件):? ?
2? ? ?...(做點(diǎn)兒什么)? ??
3? ? ?...(做點(diǎn)兒什么)
4 else:? ??
5? ? ...(干點(diǎn)兒別的)? ??
6? ? ...(干點(diǎn)兒別的)
if 后面跟的是一個(gè)條件船老,當(dāng)條件為真時(shí)咖熟,執(zhí)行 if 下面的(做點(diǎn)兒什么)命令,當(dāng)條件為假時(shí)柳畔,跳到else: 馍管,然后開始執(zhí)行else: 下面的命令
放在流程圖中:
三躬存、if...elif...else... 的【如果1-如果2-否則】的邏輯:
照理說张惹,女王該向唐三藏表白了。不過岭洲,畢竟是女王宛逗,習(xí)慣了身邊有參謀,她又把自己的想法跟國師講了下盾剩。
國師看女王這些天的狀態(tài)雷激,知道她一時(shí)為情所困,并不理性告私。唐僧取經(jīng)屎暇,是奉王命行事,不論是成婚還是軟禁唐僧驻粟,都涉及到大唐的政治關(guān)系根悼,是一件外交上的麻煩事;而且國師私下也找唐僧談過,了解他們師徒四人之前歷經(jīng)過種種艱難險(xiǎn)阻挤巡,其心甚堅(jiān)剩彬,是絕不肯為女王留下來的。
國師心里雖然清楚矿卑,但又不好直接告訴女王喉恋,于是她是這樣對女王說的:“陛下,你這樣做打算母廷,考慮得不周全轻黑。”“噢徘意,此話怎講苔悦?”女王問轩褐。
“您只考慮了唐僧的兩種反應(yīng):接受您的心意椎咧,和拒絕您的心意,卻沒有考慮到其他情況把介?”國師說勤讽。“那難道還有第三種情況拗踢?”女王問脚牍。
“臣以為有,萬一唐長老心中對您有意巢墅,但取經(jīng)也不可不進(jìn)行诸狭,這算是接受還是拒絕呢?又萬一唐長老一直沉默君纫,不回答您驯遇,既不拒絕,也不接受蓄髓,這又算什么呢叉庐?”國師說。女王問:“嗯会喝,那國師以為如何是好陡叠?”女王說≈矗“您可以再設(shè)置一種情況枉阵,其他類型的反應(yīng)——容后再議≡で眩”
這樣兴溜,女王心中,就有了三種應(yīng)對策略。
1 a = input('''唐僧的反應(yīng)是什么昵慌?
2 1.明確接受
3 2.明確拒絕
5 3.其他反應(yīng)
5 請輸入數(shù)字 ''')
6 if a == '1':
7? ? print('成婚')
8 elif a == '2':
9? ? ?print('軟禁')
10 else:
11? ? ?print('容后再議')
再來審視一下elif的使用邏輯:
1?if...(條件1):
2? ? ...(做點(diǎn)兒什么)
3 elif...(條件2):
4? ? ?...(做點(diǎn)兒其他的)
5 elif...(條件3):
6? ? ?...(做點(diǎn)兒其他的)
7 else(其他):
8? ? ?...(干點(diǎn)兒別的)
if后面跟的是一個(gè)條件假夺,當(dāng)此條件為真時(shí),執(zhí)行if下面的(做點(diǎn)兒什么)命令斋攀,然后結(jié)束條件判斷已卷;當(dāng)條件為假時(shí),跳到elif淳蔼。
elif后面跟的是另一個(gè)條件侧蘸,當(dāng)此條件為真時(shí),執(zhí)行elif下面(做點(diǎn)兒其他的)命令鹉梨,然后結(jié)束條件判斷讳癌;當(dāng)此條件為假時(shí),跳到第二個(gè)elif:
elif后面跟的又是一個(gè)條件存皂,當(dāng)此條件為真時(shí)晌坤,執(zhí)行elif下面(做點(diǎn)兒其他的)命令,然后結(jié)束條件判斷旦袋;當(dāng)此條件為假時(shí)骤菠,跳到else那里,去執(zhí)行else下的命令疤孕。
流程圖如此表示: