python 之選擇結構(if --elif --else)


python中有三種結構:順序結構、選擇結構、循環結構,此處介紹選擇結構。

if -- else 結構:

if 判斷條件:

  執行語句

else:

  執行語句

當if后面的判斷條件為真(True)時,執行冒號后面的語句,否則執行else后面的語句,注意語句縮進。

if 判斷表達式可用 <=, >=,  !=,  ==, > , < 

# 判斷學生成績是否合格
marks = float(input("請輸入學生成績"))
if marks >= 60:
    print("該學生成績合格")
else:
    print("該學生需要補考")
打印結果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
請輸入學生成績59.5
該學生需要補考

if 判斷表達式可用 in ,not in 判斷

# 查找學生是否在班級中
list1 = ["張三", "李四", "王二", "麻子"]
student = input("請輸入學生姓名")
if student not in list1:
    print("不在該班級中")
else:
    print("為此班級學生")
打印結果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
請輸入學生姓名二狗子
不在該班級中

if 判斷條件中,如果需要同時滿足多個條件,則可用and關聯判斷條件

# 輸出年齡在20歲內,王姓學生
student = {"張三": 19, "李四": 20, "王二": 19, "麻子": 20}
for name in student:
    if "" in name and student[name] < 20:
        print("姓名:" + name+" " + "年齡:" + str(student[name]))
    else:
        pass
打印結果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
姓名:王二 年齡:19

if判斷條件中,如果多個條件中只需要其中一個滿足,則可用or 關聯判斷條件

# 輸入成績在90分以上,或者成績在60分以下的考生
marks = {"張三": 95, "李四": 20, "王二": 88, "麻子": 91}
for name in marks:
    if marks[name] > 90 or marks[name] < 60:
        print("姓名:" + name+" " + "分數:" + str(marks[name]))
    else:
        pass
打印結果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
姓名:張三 分數:95
姓名:李四 分數:20
姓名:麻子 分數:91

if -- elif --else 結構

if 判斷條件:

  執行語句

elif 判斷條件:

  執行語句

...

...

else:

  執行語句

當if后面的判斷條件為真(True)時,執行冒號后面的語句,否則進行判斷elif后面的判斷條件,elif判斷條件為真,執行冒號后面的語句,一直往下,如果條件判斷都不為真,則執行else下的語句。

# 統計學生成績中,不及格人數、60-80間的人數,80-90間的人數、90以上人數(含90)
marks = {"張三": 95, "李四": 20, "王二": 88, "麻子": 91, "奶黃包": 90, "流沙包": 78, "燕麥包": 65, "香菇包": 90}
count_1, count_2, count_3, count_4 = list(), list(), list(), list()
for name in marks:
    if marks[name] < 60:
        count_1.append(name)
    elif 60 <= marks[name] < 80:
        count_2.append(name)
    elif 80 <= marks[name] < 90:
        count_3.append(name)
    else:
        count_4.append(name)
print("不及格人數有:" + str(len(count_1)) + "", "分別有:" + str(count_1))
print("60至80間人數有:" + str(len(count_2)) + "", "分別有:" + str(count_2))
print("80至90間人數有:" + str(len(count_3)) + "", "分別有:" + str(count_3))
print("90及以上人數有:" + str(len(count_4)) + "", "分別有:" + str(count_4))
打印結果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
不及格人數有:1人 分別有:['李四']
60至80間人數有:2人 分別有:['流沙包', '燕麥包']
80至90間人數有:1人 分別有:['王二']
90及以上人數有:4人 分別有:['張三', '麻子', '奶黃包', '香菇包']

 if 嵌套結構:

if 判斷條件:

  if 判斷條件:

    執行語句

  elif 判斷條件:

    執行語句

  ...

  ...

  else:

    執行語句

elif 判斷條件:

  執行語句

...

...

else:

  執行語句

# 統計學生成績中,不及格人數、60-70間的人數,70 -80 間的人數,80-90間的人數、90以上人數(含90)
marks = {"張三": 95, "李四": 20, "王二": 88, "麻子": 91, "奶黃包": 90, "流沙包": 78, "燕麥包": 65, "香菇包": 90}
count_1, count_2, count_3, count_4, count_5 = list(), list(), list(), list(), list()
for name in marks:
    if 70 <= marks[name] < 90:
        if marks[name] < 80:
            count_1.append(name)
        elif 80 <= marks[name] < 90:
            count_2.append(name)
        else:
            count_3.append(name)
    elif 60 <= marks[name] < 70:
        count_4.append(name)
    else:
        count_5.append(name)
print("不及格人數有:" + str(len(count_4)) + "", "分別有:" + str(count_4))
print("60至70間人數有:" + str(len(count_5)) + "", "分別有:" + str(count_5))
print("70至80間人數有:" + str(len(count_1)) + "", "分別有:" + str(count_1))
print("80至90間人數有:" + str(len(count_2)) + "", "分別有:" + str(count_2))
print("90及以上人數有:" + str(len(count_3)) + "", "分別有:" + str(count_3))
打印結果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
不及格人數有:1人 分別有:['燕麥包']
60至70間人數有:5人 分別有:['張三', '李四', '麻子', '奶黃包', '香菇包']
70至80間人數有:1人 分別有:['流沙包']
80至90間人數有:1人 分別有:['王二']
90及以上人數有:0人 分別有:[]

if和if…elif區別在於:if判斷語句無論是否滿足條件,后面的if運行都還會被執行(雖然條件可能不會被滿足),elif只要條件滿足后面的判斷將不會被執行:

選擇結構在后期應用非常多,比如后期實現自動化平台時,進行元素定位方法、元素操作方法都是用if ---elif --else 結構和循環結構組合實現

 


免責聲明!

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



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