條件語句
一、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 '葡萄') inmy_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
ifTrue:print('我是對的')else:print('你是最厲害的')
輸出結果:
我是對的
條件語句為False
ifFalse:print('你是對的')else:print('我是最厲害的')
輸出結果:
我是最厲害的
4.else是可選擇語句 在判斷條件不成立時,執行相關語句
else不是必備的,在條件判斷中,加不加else,可以根據自己實際的業務邏輯進行使用。
5.if的嵌套使用
Python在運作一個檔案時,會檢視所有頂格寫的代碼。一個完整的if表達式隻會看某一個滿足條件的語句
'''3.求三個整數中的最大值
提示:定義 3 個變量'''
#先自定義3個變量并指派
num1=6num2=10num3=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成對的