Python小課筆記--Python控制流:if邏輯判斷

截圖來自Python小課

文|仟櫻雪
在Python小課-1-2-3節(jié)中衔沼,我們已經(jīng)學(xué)習(xí)了基礎(chǔ)模塊--數(shù)據(jù)--數(shù)據(jù)類型(整數(shù)、字符串衙传、浮點(diǎn)數(shù)),以及基礎(chǔ)模塊--變量厕九,基礎(chǔ)模塊--函數(shù)(input函數(shù)蓖捶、print函數(shù),type函數(shù)扁远,len函數(shù)俊鱼,str函數(shù),int函數(shù)畅买,flost函數(shù))并闲。

本節(jié)開始學(xué)習(xí)控制流中的“條件判斷”
截圖來自Python小課

條件判斷,就是——“讓計(jì)算機(jī)在合適的情況下做合適的事皮获。
計(jì)算機(jī)是一個(gè)超級(jí)聽話的仆人焙蚓,堅(jiān)決服從你的每一行指令∪鞅Γ可它不會(huì)主動(dòng)提出要幫你做什么事情购公,除非你把規(guī)則都制定好
Python小課--條件判斷的學(xué)習(xí),主要是以女兒國(guó)國(guó)王的煩惱作為案例介紹雁歌。

1宏浩、煩惱1::如果今晚下雨,那就說明女王和唐三藏合適靠瞎,可以在一起比庄。
在Python中求妹,實(shí)現(xiàn):

weather = input('請(qǐng)回答:今晚下雨or沒下雨')
if weather == '下雨':
    print('女王和唐僧可以在一起。')

運(yùn)行結(jié)果:
本地Python環(huán)境運(yùn)行

說明:輸入了下雨的答案之后佳窑,會(huì)出現(xiàn)如上結(jié)果制恍,如果輸入了“不下雨”,那程序就什么都不會(huì)執(zhí)行神凑。因?yàn)檫@不滿足下一行代碼的要求净神!

==,該符號(hào)表示【左右兩邊的內(nèi)容相等】溉委;
第1行代碼:用input() 函數(shù)請(qǐng)用戶輸入今晚下雨or沒下雨鹃唯,并將結(jié)果賦值給weather(英文,天氣)瓣喊。
第2行代碼:開始使用if語(yǔ)句坡慌,如果變量weather等于下雨。
第3行代碼:那就打印--女王和唐僧可以在一起藻三。這是屬于if內(nèi)部的語(yǔ)句洪橘,要縮進(jìn)四個(gè)空格。
if語(yǔ)句的邏輯語(yǔ)法:

if ...(條件):
    ...(做點(diǎn)兒什么)
    ...(做點(diǎn)兒什么)
...(if語(yǔ)句的外部命令)

(1)if 后面跟的是一個(gè)條件趴酣。當(dāng)條件為真時(shí)梨树,就執(zhí)行內(nèi)部縮進(jìn)的命令(做點(diǎn)兒什么),數(shù)量不限岖寞;如果條件為假,不管柜蜈,跳過if仗谆,去執(zhí)行if語(yǔ)句的外部命令。
(2)注意了哈淑履!if 的條件后面有一個(gè)英文的冒號(hào)【:】隶垮,很容易被漏掉;(做點(diǎn)兒什么)都屬于if內(nèi)部的命令秘噪,所以要縮進(jìn)4個(gè)空格狸吞。
(3)當(dāng)if后面的條件為假時(shí),不會(huì)一行一行向下執(zhí)行了指煎,而是跳過if的內(nèi)部代碼蹋偏,去執(zhí)行if語(yǔ)句的外部代碼了。

2至壤、煩惱2:今晚有月亮嗎威始?如果有,那就打酉窠帧:女王和唐僧可以在一起黎棠。
在Python中晋渺,實(shí)現(xiàn):

weather = input('請(qǐng)回答:今晚有月亮or沒有月亮?')
if weather == '有月亮':
    print('我和唐僧可以在一起脓斩。')

運(yùn)行結(jié)果:

請(qǐng)回答:今晚有月亮or沒有月亮木西?有月亮
我和唐僧可以在一起。

說明:輸入了有月亮的答案之后随静,會(huì)出現(xiàn)如上結(jié)果户魏,如果輸入了“沒有月亮”,那程序就什么都不會(huì)執(zhí)行挪挤。

3叼丑、煩惱3:如果唐僧接受了表白,很好扛门,馬上舉行婚禮鸠信,全國(guó)放假;如果唐僧沒有答應(yīng)的話论寨,把唐僧軟禁起來星立,從長(zhǎng)計(jì)議,畢竟唐僧所處的行政區(qū)域正是女王管轄的領(lǐng)土葬凳,大唐的皇帝也管不到這么遠(yuǎn)绰垂。
在Python中,實(shí)現(xiàn):

answer = input('唐僧接受了表白嗎火焰?請(qǐng)回答有or沒有劲装?')
if answer == '有':
    print('很好,馬上舉行婚禮昌简,全國(guó)放假')
else:
    print('把唐僧軟禁起來占业,從長(zhǎng)計(jì)議')

運(yùn)行結(jié)果:

唐僧接受了表白嗎?請(qǐng)回答有or沒有纯赎?沒有
把唐僧軟禁起來谦疾,從長(zhǎng)計(jì)議

說明:輸入了"沒有"之后,會(huì)出現(xiàn)如上結(jié)果犬金,如果輸入了“有”念恍,則輸出“很好,馬上舉行婚禮晚顷,全國(guó)放假”峰伙。
此處多了一個(gè)【else:】這個(gè)單詞的意思是——否則、其他音同,還有兩個(gè)冒號(hào)词爬。

if...else...的邏輯語(yǔ)法:

if...(條件):
    ...(做點(diǎn)兒什么)
    ...(做點(diǎn)兒什么)
else:
    ...(干點(diǎn)兒別的)
    ...(干點(diǎn)兒別的)

(1)if 后面跟的是一個(gè)條件,當(dāng)條件為真時(shí)权均,執(zhí)行 if 下面的(做點(diǎn)兒什么)命令顿膨,當(dāng)條件為假時(shí)锅锨,跳到else: ,然后開始執(zhí)行else: 下面的命令恋沃。
(2)if 下面的代碼要縮進(jìn)四個(gè)空格必搞,代表的是if內(nèi)部的功能,所以要縮進(jìn)囊咏。else下面的代碼同樣要縮進(jìn)四個(gè)空格恕洲,代表的是else內(nèi)部的功能。這都是為了方便我們看代碼梅割。

(3)尤其要注意的是霜第,if后面的條件后面要跟英文冒號(hào)【:】,還有else后面户辞,也要跟英文冒號(hào)【:】泌类。
截圖來自Python小課
練習(xí)1:
請(qǐng)用 if...else... 完成這樣一個(gè)程序:

0,請(qǐng)用戶輸入一個(gè)整數(shù)底燎;
1刃榨,然后如果這個(gè)整數(shù)大于10,就打印(整數(shù)-20)的結(jié)果双仍;
2枢希,否則,就打印(整數(shù)+20)的結(jié)果
Python操作:

a = int(input('請(qǐng)輸入一個(gè)整數(shù):'))
if a > 10:
    print(a-20)
else:
    print(a+20)
#第1行代碼:使用int()函數(shù)是為了讓字符串轉(zhuǎn)換為整數(shù)朱沃,這樣才能進(jìn)行a-20和a+20的計(jì)算苞轿。
#第2、3行代碼:如果這個(gè)整數(shù)大于10为流,就打印(a-20)的結(jié)果呕屎;否則,就跳到第四行代碼敬察。
#第4、5行代碼:當(dāng)這個(gè)整數(shù)不滿足大于10的條件時(shí)尔当,打印(a+20)的結(jié)果莲祸。

4、煩惱4:女王跟唐僧表白心跡之后椭迎,根據(jù)唐僧的反應(yīng)情況锐帜,出具三種措施:
唐僧,明確接受畜号,則成婚缴阎;明確拒絕,則軟禁简软;其他反應(yīng)蛮拔,容后再議述暂。
在Python中,實(shí)現(xiàn):

a = input('''
唐僧的反應(yīng)是什么建炫?
1.明確接受
2.明確拒絕
3.其他反應(yīng)
請(qǐng)輸入數(shù)字>
''')
if a == '1':
    print('成婚')
elif a == '2':
    print('軟禁')
else:
    print('容后再議')

運(yùn)行結(jié)果:

唐僧的反應(yīng)是什么畦韭?
1.明確接受
2.明確拒絕
3.其他反應(yīng)
請(qǐng)輸入數(shù)字>
3
容后再議

說明:輸入了3之后,會(huì)出現(xiàn)如上結(jié)果肛跌,如果輸入了“2”艺配,則輸出“軟禁”’,輸入1衍慎,則輸出“成婚”转唉。
又多了一個(gè)【elif】,【elif】其實(shí)是else if 的縮寫稳捆,代表否則如果赠法。
第1-7行代碼,都是在獲取數(shù)據(jù)眷柔,即唐僧的選擇到底是哪個(gè)期虾。三引號(hào)可以幫助字符串實(shí)現(xiàn)換行。
第8驯嘱、9行代碼:如果變量 a 和 '1' 相等习柠,即唐僧明確接受,那么就顯示--成婚丈钙。
第10剪芥、11行代碼:如果變量 a 和 '2' 相等,即唐僧明確拒絕剃幌,那么就顯示--軟禁聋涨。
第12、13行代碼:如果上面兩種都不是负乡,即唐僧有其他反應(yīng)牍白,那么就顯示--容后再議。
這里有3種情況抖棘,所以使用了一次elif茂腥,如果有四種情況,可以使用兩次切省,這視代碼的實(shí)際情況而定最岗。

elif的使用邏輯:

if...(條件1):
    ...(做點(diǎn)兒什么)
elif...(條件2):
    ...(做點(diǎn)兒其他的)
elif...(條件3):
    ...(做點(diǎn)兒其他的)
else(其他):
    ...(干點(diǎn)兒別的)

(1)if后面跟的是一個(gè)條件,當(dāng)此條件為真時(shí)朝捆,執(zhí)行if下面的(做點(diǎn)兒什么)命令般渡,然后結(jié)束條件判斷;當(dāng)條件為假時(shí),跳到elif驯用。
(2)elif后面跟的是另一個(gè)條件脸秽,當(dāng)此條件為真時(shí),執(zhí)行elif下面(做點(diǎn)兒其他的)命令晨汹,然后結(jié)束條件判斷豹储;當(dāng)此條件為假時(shí),跳到第二個(gè)elif:
(3)elif后面跟的又是一個(gè)條件淘这,當(dāng)此條件為真時(shí)剥扣,執(zhí)行elif下面(做點(diǎn)兒其他的)命令,然后結(jié)束條件判斷铝穷;當(dāng)此條件為假時(shí)钠怯,跳到else那里,去執(zhí)行else下的命令曙聂。
******************警示:if的條件后面有冒號(hào)晦炊,elif的條件后面有冒號(hào),else后面也有冒號(hào)宁脊。同樣的断国,if內(nèi)部語(yǔ)句、elif內(nèi)部語(yǔ)句榆苞,和else內(nèi)部語(yǔ)句都是要縮進(jìn)四個(gè)空格*************************************************

練習(xí)題1:
熊貓博物館的門票有三種稳衬,當(dāng)游客的年齡小于 6 歲時(shí),收5元坐漏;當(dāng)游客的年齡大于等于6歲薄疚,而小于60歲時(shí),收20元赊琳;當(dāng)游客的年齡大于等于60歲時(shí)街夭,不收費(fèi)。請(qǐng)你寫出一個(gè)程序躏筏,當(dāng)游客輸入自己的年齡后板丽,可以打印出這位游客該收多少錢的門票。
Python實(shí)現(xiàn):

a = int(input('請(qǐng)輸入你的年齡:'))
if a < 6:
    print('收5元')
elif a < 60:
    print('收20元')
else:
    print('不收費(fèi)')

說明:不同年齡段收不同的門票趁尼,其實(shí)是并列的三種情況檐什,所以是比較適合使用if...elif...else的。
第1行代碼:是為了獲取游客的年齡信息弱卡,并把字符串的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù)。
第2住册、3行代碼:小于6歲的游客婶博,屬于游客中的第一區(qū)間,收費(fèi)5元荧飞。如果是大于等于6歲的游客凡人,跳到elif名党。
第4、5行代碼:在大于等于6歲的游客中挠轴,如果小于60歲传睹,那么屬于第二區(qū)間,收費(fèi)20元岸晦。在大于等于6歲的游客中欧啤,如果不滿足elif后面的條件,即大于等于60歲启上,跳到else邢隧。
第6、7行代碼:大于等于60歲的冈在,屬于游客中的第三區(qū)間倒慧,不收費(fèi)。

5包券、課后練習(xí)
(1)【背景】
最近纫谅,派大星想要減肥,他決定控制自己的飲食溅固,少吃一點(diǎn)蟹黃堡付秕。
海綿寶寶為了幫助好朋友派大星,和派大星一起制定了一個(gè)飲食游戲发魄。
游戲規(guī)則如下:
如果派大星一天吃超過40個(gè)蟹黃堡盹牧,就要給海綿寶寶100塊;
如果派大星一天吃小于等于40個(gè)的蟹黃堡励幼,海綿寶寶就給派大星100塊汰寓。
【題目】
請(qǐng)你寫出一段代碼:
當(dāng)輸入派大星一天吃的蟹黃堡數(shù)量時(shí),可以打印出這天該派大星給海綿寶寶錢苹粟,還是海綿寶寶給派大星錢有滑。
Python操作:

num=int(input('請(qǐng)問:您一天吃的蟹黃堡的數(shù)量:'))
if num >40:
    print('給海綿寶寶100元')
else:
    print('海綿寶寶需給您100元')

(2)【背景】
我知道,在許多時(shí)候嵌削,戀人是由朋友發(fā)展而成的毛好。而這個(gè)過程,可以用代碼來做演示苛秕。
不信肌访?聽我講。
首先判斷:兩人的關(guān)系是不是達(dá)到了【朋友之上艇劫,戀人未滿】吼驶?
如果不是,那么輸出:進(jìn)度條還不夠,再等等蟹演。程序終結(jié)风钻。
如果是,那么再判斷:你是不是想和對(duì)方有進(jìn)一步的發(fā)展酒请?
如果不是骡技,那么輸出:還是做朋友吧。程序終結(jié)羞反。
如果是布朦,那么再判斷:對(duì)方是不是想有進(jìn)一步的發(fā)展?
如果不是苟弛,那么輸出:恭喜獲得“好人卡”喝滞。
如果是,那么輸出:恭喜你們膏秫,有情人終成眷屬右遭!
Python實(shí)現(xiàn):

#在許多時(shí)候,戀人是由朋友發(fā)展而成的缤削,下面讓我們來做個(gè)戀愛告白測(cè)試:
num1 = input('請(qǐng)問:你們的關(guān)系目前是進(jìn)入曖昧階段了嗎窘哈?請(qǐng)回答:是or不是 ')
if num1 == '不是':
        print('革命尚未成功,同志仍需努力巴じ摇滚婉!')
elif num1 == '是':
        num2 = input('感情剛好,你希望你們的關(guān)系更進(jìn)一步嗎帅刀?請(qǐng)回答:是or不是 ')
        if num2 == '不是':
            print('那就點(diǎn)到即止吧让腹,朋友一生一起走~')
        elif num2 == '是':
            num3 = input('那TA呢,想再進(jìn)一步嗎扣溺?請(qǐng)回答:想or不想骇窍? ')
            if num3 == '不想':
                print('恭喜你,獲得千年單身卡锥余,好人一生平安腹纳!')
            else:
                print('恭喜!有情人終成眷屬驱犹,命中注定在一起嘲恍!')

(3)BMI指數(shù)是一個(gè)國(guó)際上常用的衡量人體胖瘦程度,以及是否健康的指數(shù)雄驹。
它的計(jì)算方式如下:
BMI = 體重 ÷(身高×身高)

比如一個(gè)體重50kg佃牛,身高160cm的人,BMI = 50 ÷(1.6*1.6)=19.5

對(duì)照BMI的表格:
截圖來自Python小課
Python語(yǔ)句實(shí)現(xiàn):
weight = float(input('請(qǐng)輸入您的體重(單位:kg):  '))
high = float(input('請(qǐng)輸入您的身高(單位:cm):  '))
BMI = weight / ((high / 100) * (high / 100))
if BMI < 18.5:
    print('過輕')
elif BMI < 24.0:
    print('正常')
elif BMI < 28:
    print('過重')
else:
    print('肥胖')

小結(jié):
1医舆、if的條件后面有冒號(hào)吁脱,elif的條件后面有冒號(hào)桑涎,else后面也有冒號(hào);
2兼贡、if內(nèi)部語(yǔ)句、elif內(nèi)部語(yǔ)句娃胆,和else內(nèi)部語(yǔ)句都是要縮進(jìn)四個(gè)空格遍希;
3、括號(hào)里烦、冒號(hào)凿蒜、單引號(hào)切記是英文狀態(tài)下的輸入;
4胁黑、相關(guān)數(shù)據(jù)類型的轉(zhuǎn)換嵌套設(shè)置废封。

(注:2018.10.14,Python編程,撿破爛兒的笨小孩學(xué)習(xí)小記丧蘸,有用就給個(gè)小心心喲漂洋,后續(xù)持續(xù)更新ing)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市力喷,隨后出現(xiàn)的幾起案子刽漂,更是在濱河造成了極大的恐慌,老刑警劉巖弟孟,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贝咙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拂募,警方通過查閱死者的電腦和手機(jī)庭猩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陈症,“玉大人蔼水,你說我怎么就攤上這事∨来眨” “怎么了徙缴?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)嘁信。 經(jīng)常有香客問我于样,道長(zhǎng),這世上最難降的妖魔是什么潘靖? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任穿剖,我火速辦了婚禮,結(jié)果婚禮上卦溢,老公的妹妹穿的比我還像新娘糊余。我一直安慰自己秀又,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布贬芥。 她就那樣靜靜地躺著吐辙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蘸劈。 梳的紋絲不亂的頭發(fā)上昏苏,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音威沫,去河邊找鬼贤惯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棒掠,可吹牛的內(nèi)容都是我干的孵构。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼烟很,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼颈墅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起溯职,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤精盅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谜酒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叹俏,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年僻族,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粘驰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡述么,死狀恐怖蝌数,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情度秘,我是刑警寧澤顶伞,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站剑梳,受9級(jí)特大地震影響唆貌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垢乙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一锨咙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧追逮,春花似錦酪刀、人聲如沸粹舵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)眼滤。三九已至,卻和暖如春稠茂,著一層夾襖步出監(jiān)牢的瞬間柠偶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工睬关, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毡证。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓电爹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親料睛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丐箩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容