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 結構和循環結構組合實現