Python小记3

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判断基本语法的加深进阶,更能符合和满足实际应用场景,需要灵活掌握及运用。

posted @ 2020-03-17 14:01  凶狠的木头哥  阅读(219)  评论(0编辑  收藏  举报