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

截圖來自Python小課

文|仟櫻雪
在Python小課-1-2-3節(jié)中,我們已經學習了基礎模塊--數據--數據類型(整數、字符串、浮點數),以及基礎模塊--變量,基礎模塊--函數(input函數、print函數,type函數,len函數,str函數,int函數,flost函數)。

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

條件判斷,就是——“讓計算機在合適的情況下做合適的事。
計算機是一個超級聽話的仆人,堅決服從你的每一行指令??伤粫鲃犹岢鲆獛湍阕鍪裁词虑?,除非你把規(guī)則都制定好
Python小課--條件判斷的學習,主要是以女兒國國王的煩惱作為案例介紹。

1、煩惱1::如果今晚下雨,那就說明女王和唐三藏合適,可以在一起。
在Python中,實現:

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

運行結果:
本地Python環(huán)境運行

說明:輸入了下雨的答案之后,會出現如上結果,如果輸入了“不下雨”,那程序就什么都不會執(zhí)行。因為這不滿足下一行代碼的要求!

==,該符號表示【左右兩邊的內容相等】;
第1行代碼:用input() 函數請用戶輸入今晚下雨or沒下雨,并將結果賦值給weather(英文,天氣)。
第2行代碼:開始使用if語句,如果變量weather等于下雨。
第3行代碼:那就打印--女王和唐僧可以在一起。這是屬于if內部的語句,要縮進四個空格。
if語句的邏輯語法:

if ...(條件):
    ...(做點兒什么)
    ...(做點兒什么)
...(if語句的外部命令)

(1)if 后面跟的是一個條件。當條件為真時,就執(zhí)行內部縮進的命令(做點兒什么),數量不限;如果條件為假,不管,跳過if,去執(zhí)行if語句的外部命令。
(2)注意了哈!if 的條件后面有一個英文的冒號【:】,很容易被漏掉;(做點兒什么)都屬于if內部的命令,所以要縮進4個空格。
(3)當if后面的條件為假時,不會一行一行向下執(zhí)行了,而是跳過if的內部代碼,去執(zhí)行if語句的外部代碼了。

2、煩惱2:今晚有月亮嗎?如果有,那就打印:女王和唐僧可以在一起。
在Python中,實現:

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

運行結果:

請回答:今晚有月亮or沒有月亮?有月亮
我和唐僧可以在一起。

說明:輸入了有月亮的答案之后,會出現如上結果,如果輸入了“沒有月亮”,那程序就什么都不會執(zhí)行。

3、煩惱3:如果唐僧接受了表白,很好,馬上舉行婚禮,全國放假;如果唐僧沒有答應的話,把唐僧軟禁起來,從長計議,畢竟唐僧所處的行政區(qū)域正是女王管轄的領土,大唐的皇帝也管不到這么遠。
在Python中,實現:

answer = input('唐僧接受了表白嗎?請回答有or沒有?')
if answer == '有':
    print('很好,馬上舉行婚禮,全國放假')
else:
    print('把唐僧軟禁起來,從長計議')

運行結果:

唐僧接受了表白嗎?請回答有or沒有?沒有
把唐僧軟禁起來,從長計議

說明:輸入了"沒有"之后,會出現如上結果,如果輸入了“有”,則輸出“很好,馬上舉行婚禮,全國放假”。
此處多了一個【else:】這個單詞的意思是——否則、其他,還有兩個冒號。

if...else...的邏輯語法:

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

(1)if 后面跟的是一個條件,當條件為真時,執(zhí)行 if 下面的(做點兒什么)命令,當條件為假時,跳到else: ,然后開始執(zhí)行else: 下面的命令。
(2)if 下面的代碼要縮進四個空格,代表的是if內部的功能,所以要縮進。else下面的代碼同樣要縮進四個空格,代表的是else內部的功能。這都是為了方便我們看代碼。

(3)尤其要注意的是,if后面的條件后面要跟英文冒號【:】,還有else后面,也要跟英文冒號【:】。
截圖來自Python小課
練習1:
請用 if...else... 完成這樣一個程序:

0,請用戶輸入一個整數;
1,然后如果這個整數大于10,就打印(整數-20)的結果;
2,否則,就打印(整數+20)的結果
Python操作:

a = int(input('請輸入一個整數:'))
if a > 10:
    print(a-20)
else:
    print(a+20)
#第1行代碼:使用int()函數是為了讓字符串轉換為整數,這樣才能進行a-20和a+20的計算。
#第2、3行代碼:如果這個整數大于10,就打印(a-20)的結果;否則,就跳到第四行代碼。
#第4、5行代碼:當這個整數不滿足大于10的條件時,打印(a+20)的結果。

4、煩惱4:女王跟唐僧表白心跡之后,根據唐僧的反應情況,出具三種措施:
唐僧,明確接受,則成婚;明確拒絕,則軟禁;其他反應,容后再議。
在Python中,實現:

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

運行結果:

唐僧的反應是什么?
1.明確接受
2.明確拒絕
3.其他反應
請輸入數字>
3
容后再議

說明:輸入了3之后,會出現如上結果,如果輸入了“2”,則輸出“軟禁”’,輸入1,則輸出“成婚”。
又多了一個【elif】,【elif】其實是else if 的縮寫,代表否則如果。
第1-7行代碼,都是在獲取數據,即唐僧的選擇到底是哪個。三引號可以幫助字符串實現換行。
第8、9行代碼:如果變量 a 和 '1' 相等,即唐僧明確接受,那么就顯示--成婚。
第10、11行代碼:如果變量 a 和 '2' 相等,即唐僧明確拒絕,那么就顯示--軟禁。
第12、13行代碼:如果上面兩種都不是,即唐僧有其他反應,那么就顯示--容后再議。
這里有3種情況,所以使用了一次elif,如果有四種情況,可以使用兩次,這視代碼的實際情況而定。

elif的使用邏輯:

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

(1)if后面跟的是一個條件,當此條件為真時,執(zhí)行if下面的(做點兒什么)命令,然后結束條件判斷;當條件為假時,跳到elif。
(2)elif后面跟的是另一個條件,當此條件為真時,執(zhí)行elif下面(做點兒其他的)命令,然后結束條件判斷;當此條件為假時,跳到第二個elif:
(3)elif后面跟的又是一個條件,當此條件為真時,執(zhí)行elif下面(做點兒其他的)命令,然后結束條件判斷;當此條件為假時,跳到else那里,去執(zhí)行else下的命令。
******************警示:if的條件后面有冒號,elif的條件后面有冒號,else后面也有冒號。同樣的,if內部語句、elif內部語句,和else內部語句都是要縮進四個空格*************************************************

練習題1:
熊貓博物館的門票有三種,當游客的年齡小于 6 歲時,收5元;當游客的年齡大于等于6歲,而小于60歲時,收20元;當游客的年齡大于等于60歲時,不收費。請你寫出一個程序,當游客輸入自己的年齡后,可以打印出這位游客該收多少錢的門票。
Python實現:

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

說明:不同年齡段收不同的門票,其實是并列的三種情況,所以是比較適合使用if...elif...else的。
第1行代碼:是為了獲取游客的年齡信息,并把字符串的數據類型轉換為整數。
第2、3行代碼:小于6歲的游客,屬于游客中的第一區(qū)間,收費5元。如果是大于等于6歲的游客,跳到elif。
第4、5行代碼:在大于等于6歲的游客中,如果小于60歲,那么屬于第二區(qū)間,收費20元。在大于等于6歲的游客中,如果不滿足elif后面的條件,即大于等于60歲,跳到else。
第6、7行代碼:大于等于60歲的,屬于游客中的第三區(qū)間,不收費。

5、課后練習
(1)【背景】
最近,派大星想要減肥,他決定控制自己的飲食,少吃一點蟹黃堡。
海綿寶寶為了幫助好朋友派大星,和派大星一起制定了一個飲食游戲。
游戲規(guī)則如下:
如果派大星一天吃超過40個蟹黃堡,就要給海綿寶寶100塊;
如果派大星一天吃小于等于40個的蟹黃堡,海綿寶寶就給派大星100塊。
【題目】
請你寫出一段代碼:
當輸入派大星一天吃的蟹黃堡數量時,可以打印出這天該派大星給海綿寶寶錢,還是海綿寶寶給派大星錢。
Python操作:

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

(2)【背景】
我知道,在許多時候,戀人是由朋友發(fā)展而成的。而這個過程,可以用代碼來做演示。
不信?聽我講。
首先判斷:兩人的關系是不是達到了【朋友之上,戀人未滿】?
如果不是,那么輸出:進度條還不夠,再等等。程序終結。
如果是,那么再判斷:你是不是想和對方有進一步的發(fā)展?
如果不是,那么輸出:還是做朋友吧。程序終結。
如果是,那么再判斷:對方是不是想有進一步的發(fā)展?
如果不是,那么輸出:恭喜獲得“好人卡”。
如果是,那么輸出:恭喜你們,有情人終成眷屬!
Python實現:

#在許多時候,戀人是由朋友發(fā)展而成的,下面讓我們來做個戀愛告白測試:
num1 = input('請問:你們的關系目前是進入曖昧階段了嗎?請回答:是or不是 ')
if num1 == '不是':
        print('革命尚未成功,同志仍需努力?。?)
elif num1 == '是':
        num2 = input('感情剛好,你希望你們的關系更進一步嗎?請回答:是or不是 ')
        if num2 == '不是':
            print('那就點到即止吧,朋友一生一起走~')
        elif num2 == '是':
            num3 = input('那TA呢,想再進一步嗎?請回答:想or不想? ')
            if num3 == '不想':
                print('恭喜你,獲得千年單身卡,好人一生平安!')
            else:
                print('恭喜!有情人終成眷屬,命中注定在一起!')

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

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

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

小結:
1、if的條件后面有冒號,elif的條件后面有冒號,else后面也有冒號;
2、if內部語句、elif內部語句,和else內部語句都是要縮進四個空格;
3、括號、冒號、單引號切記是英文狀態(tài)下的輸入;
4、相關數據類型的轉換嵌套設置。

(注:2018.10.14,Python編程,撿破爛兒的笨小孩學習小記,有用就給個小心心喲,后續(xù)持續(xù)更新ing)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容