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 结构和循环结构组合实现

 

posted @ 2020-12-28 18:24  **绵绵羊**  阅读(3746)  评论(0编辑  收藏  举报