接https://www.cnblogs.com/airlinp/p/12470321.html
6.3 判断练习1
判断员工是否为本公司员工;
# 定义员工号 userid=int(input("请输入员工号:")) # 初始化否为公司员工判断变量 is_employee=True # 判断员工号是否属于本公司 if userid<=999 and userid>0 : is_employee=True print("是本公司员工:%s"%(is_employee)) else : is_employee=False print("不是本公司员工:%s" % (is_employee))
由上图可知:
- 定义了一个int的员工号变量userid,使用用户输入方式记录;
- 定义了一个是否为本公司员工的判断变量is_employee,并初始化为True;
- 定义了员工号范围:0-999,范围内为本公司员工,否则非本公司员工;
- 进入判断的时候,按照判断条件,相应的调整is_employee的结果,并进行输出;
- 这里使用了变量初始化,以及根据判断调整重新赋值变量;
7. if语句进阶
7.1 elif
在开发中,if可以判断条件,处理满足条件的情况,else处理不满足条件的情况,而elif则是处理满足不同条件的情况;
格式如下:
if 条件1: 条件1满足执行代码 elif 条件2: 条件2满足执行代码 elif 条件3: 条件3满足执行代码 else: 条件都不满足执行代码
例子:判断输入的日期是什么节日
# 输入一个日期 insert_date = input("请输入一个日期(M-D):") # 判断是否为元旦 if insert_date == "1-1": print("这一天是元旦。") # 判断是否为劳动节 elif insert_date == "5-1": print("这一天是五一劳动节。") # 判断是否为儿童节 elif insert_date == "6-1": print("这一天是六一儿童节。") # 哦按段是否为国庆节 elif insert_date == "10-1": print("这一天是国庆节。") else: print("暂时不明确这一天是什么节日。")
由上图可知:
根据用户输入的不同的日期,会逐步根据条件进行判断,并执行满足条件的部分的代码;
全部不满足则执行else部分的代码;
7.2 if嵌套
elif同时判断多个条件,所有的条件是平级的,没有优先级的关系,如果一定有优先级,那么就只有代码由上至下执行这种解释器执行原理的优先级;
if嵌套也是同时判断多个条件,但是代码执行有优先级,先判断某条件成立,再进行下一个条件的判断;
if嵌套的流程简图:
由上图可知:
- 上级判断条件的结果成立与否,控制着后续判断条件的执行;
- 这种流程逻辑,类似循序渐进模式,当初步条件完成判断后,才能进行下一步条件的判断;
代码格式:
if 条件1: 条件1成立执行代码 if 条件1成立后条件2: 条件2成立执行代码 else: 条件2不成立执行代码 else: 条件1不成立执行代码
由上述代码格式可知:
- 当条件1成立的时候,会进入条件2的判断;
- 程序是否执行条件2,取决条件1的成立与否,条件1成为了条件2执行的依据,条件1的优先级高于条件2;
- 当条件1不成立的时候,直接else执行代码;
- 根据5.4章节if代码缩进的描述,当if条件2与上一个if条件1成立执行代码缩进齐头的时候,那么if条件1和if条件2形成if嵌套,if条件1的成立与否决定了if条件的判断是否执行;
例子:
# 高中生入学分班
# 定义学生入学年龄
age=int(input("请输入学生年龄:"))
# 判断年龄是否满足入学
if age >= 15 and age <=18:
print("该学生年龄符合高中生年龄")
# 满足年龄,开始输入文理科分数,进行下一阶段的条件判断
wk_score = int(input("请输入文科综合分:"))
lk_score = int(input("请输入理科综合分:"))
if wk_score > lk_score:
print("该学生适合选文科。")
elif wk_score < lk_score:
print("该学生适合理科。")
else:
print("该学生文理科都适合,请再行思考后选科。")
# 不满足学生年龄
else:
print("该学生年龄不符合高中生年龄。")
情况1:年龄不满足≥15 并且≤18的情况
由上图可知:
- 当年龄输入11,不满足≥15并且≤18的时候,直接执行最后的else部分;
情况2:年龄满足≥15 并且≤18的情况
由上图可知:
- 当输入年龄16,符合≥15并且≤18,进行下一步输入文理科成绩部分的代码的执行;
情况3:分别输入文理科成绩,进入文理科分数的判断,三种情况:文科分>理科分、文科分<理科分、文科分=理科分,分别进行相应的文本输出
由上图可知:
- 当文科分输入98,理科分输入93,程序下一步判断满足“文科分>理科分”条件判断,进行了相应的文本输出;
由以上可见,if嵌套是非常实用和重要的,是if判断基本语法的加深进阶,更能符合和满足实际应用场景,需要灵活掌握及运用。