Python 條件語句(if..elif..else)
阿新 • • 發佈:2020-09-14
條件語句
一、if條件判斷
1.if條件判斷的基本形式
Python中,if語句用於控制程式的執行,基本形式為:
if 判斷條件: 判斷條件可為:邏輯、成員運算、比較運算
(縮排) 執行語句........ (當判斷的條件成立時,就會執行if內的語句)
else: (else後面沒有表示式)
(縮排)執行語句........ (當if條件不成立,則會執行else內的語句)
- "判斷條件"成立時(非零),則執行其後面的語句,執行內容可以是多行,可以縮排來區分表示同一個範圍
- else 為可選語句 在if判斷條件不成立時,才會執行
- 縮排 遇到冒號就要縮排,這是語法,一個標椎的縮排等於四個空格,但是四個空格不等於一個tab鍵。Python中可以使用tab鍵,進行縮排,但是這種操作是不規範的,一般用的是4個空格
例子如下:(一個簡單的 if....else 判斷)
比較運算子的使用:
#根據輸入的年齡來判斷是否成年 my_age=int(input('請輸入你的年齡:')) #input輸入的資料型別為str if my_age>=18: print('你已經成年') else: print('你還未成年') 輸出結果: 請輸入你的年齡:14 你還未成年
成員運算子的使用:
#成員運算子和邏輯運算子的結合使用 my_str='蘋果、橘子、香蕉、梨、葡萄' if ('蘋果' and '葡萄') in my_str: print('蘋果和葡萄是我最喜歡的水果之一') else: print('水果列表中沒有我喜歡的水果') 輸出結果: 蘋果和葡萄是我最喜歡的水果之一
邏輯運算子的使用
#結合列表索引和比較運算子和邏輯運算子 a=[2,3,5,6] if (a[0]>a[1]) and a[1]>a[2]: print('列表中的前三個數字排列順序是由大到小排列') else: print('列表中的前三個數字排列順序是由小到大排列') 輸出結果: 列表中的前三個數字排列順序是由小到大排列
2. if....elif.....elif.....else....
在一個if表示式中,即一個完整的 if.....elif....elif.....else....中,如果運行了其中一個條件,其他分支條件就不會再運行了
總結:當其中一個條件滿足,其他的條件分支自動遮蔽,不會再執行
''' 1、一家商場在降價促銷,所有原價都是整數(不需要考慮浮點情況),如果購買金額50-100元(包含50元和100元)之間,會給10%的折扣, 如果購買金額大於100元會給20%折扣。編寫一程式,詢問購買價格,再顯示出折扣(%10或 20%)和最終價格。 ''' #先詢問購買的價格,再做接下來的判斷 price=int(input('請輸入你的購買價格:')) if 50<=price<=100: #Discount享受的折扣價 Discount = price * 0.1 print('您將享受10%的折扣') print('您最終支付金額為:{}'.format(price - Discount)) elif price>100: # Discount享受的折扣價 Discount = price * 0.2 print('您將享受20%的折扣') print('您最終支付金額為:{}'.format(price - Discount)) else: print('您當前的不享受任何優惠')
''' 2 判斷是否為閏年 提示: 輸入一個有效的年份(如:2019),判斷是否為閏年(不需要考慮非數字的情況) 如果是閏年,則列印“2019年是閏年”;否則列印“2019年不是閏年” 什麼是閏年,請自行了解(需求文件沒有解釋) ''' ''' 閏年分為:普通閏年和世紀閏年 普通閏年:公曆年份是4的倍數的,且不是100的倍數,為普通閏年。(如2004年就是閏年); 世紀閏年:公曆年份是整百數的,必須是400的倍數才是世紀閏年(如1900年不是世紀閏年,2000年是世紀閏年); ''' year=int(input('請輸入一個有效的年份(如:2020):')) ''' 普通閏年:年份是4的倍數,且不是100的倍數 世紀閏年:必須是400的倍數 普通閏年的計算方法,能被4整除但不被100整除,year % 4==0 and year % 100!=0 世紀閏年的計算方法,能被400整除,year % 400==0 ''' if year % 4==0 and year % 100!=0: print('{}年是普通閏年'.format(year)) elif year % 400==0: print('{}年是世紀閏年'.format(year)) else: print('{}年不是閏年'.format(year))
3.if後面最關心的是什麼? 判斷條件語句是為真還是為假(也就是,是True還是False)
形式:if a:(其中隱含有bool(a),是True還是False)
- if not a: 用來判斷某個變數是否為空,是否存在(實際使用過程中,使用的非常多的判斷條件)
- a是None、0、[]、{}、().......等都為False 也就等同於if False:,也就是條件不成立,不會執行if條件下的語句,而是執行else下的語句
- a是非空型別,也就是等同於 if True:,也就是條件成立,直接執行if下的語句。(不會再去處理else下的語句)
- 條件語句為True
if True: print('我是對的') else: print('你是最厲害的') 輸出結果: 我是對的
- 條件語句為False
if False: print('你是對的') else: print('我是最厲害的') 輸出結果: 我是最厲害的
4.else是可選擇語句 在判斷條件不成立時,執行相關語句
else不是必備的,在條件判斷中,加不加else,可以根據自己實際的業務邏輯進行使用。
5.if的巢狀使用
Python在執行一個檔案時,會檢視所有頂格寫的程式碼。一個完整的if表示式只會看某一個滿足條件的語句
''' 3.求三個整數中的最大值 提示:定義 3 個變數 ''' #先自定義3個變數並賦值 num1=6 num2=10 num3=20 if num1>num2: if num1>num3: print('最大值為:{}'.format(num1)) else: if num2>num3: print('最大值為:{}'.format(num2)) else: print('最大值為:{}'.format(num3)) 輸出結果: 最大值為:20
6.工作中使用最多的結構:if......if ......if .....else
if 1: pass if 2: pass if 3: pass else: print('hello') #else是最後一個if成對的