Python 條件語句(if..elif..else)


條件語句

一、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成對的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM