生活与工作中,每个人每时每刻都要面临各种选择,也要做出各种选择,之后承担着选择所带来的各种结果--不论好还是坏。
【0】提问
生活与工作中,我们面对的选择大概可以分为下面三类:
1、理想状态的单一选择;
2、复杂点的二选一;
3、最糟糕的莫过于无数的选择。
那我们的Python是否提供这些选择的实现功能呢?我们接下来慢慢摸索,这既是一个锻炼思维的过程,也是一个有趣的过程。
无数的选择
【1】单一选择
我们先以一个流程图的方式初步了解“选择”概念。
单分支流程图
含义:当条件成立时,执行语句块;否则不执行。
用IF语法表达:
if 条件表达式:语句/语句块
其中,
1、条件表达式可以是罗辑表达式、关系表达式、算术表达式等;2、语句/语句块则可以是一条语句,也可以是多条语句;多条语句时,必须保持一致的缩进。
另外,条件表达式值为False的情况为:
False00.0空值None空序列对象(空列表、空元组、空集合、空字典、空字符串)空range对象空迭代对象除此之外都是True。
接下来我们通过实操案例来验证上面这些知识点:
IF单分支案例
【2】二选一
同样以一个流程图方式切入IF双分支(二选一):
双分支流程图
从图可以很直观看出,其与单分支的区别在于条件判断结果为False的情况下也需要执行相应的语句/语句块。
这与现实生活中的选择才真正吻合。即作出了选择后,不论对错都需要承担相应的后果。
先看看语法格式(多出一个else执行部):
if 条件表达式:语句1/语句块1else:语句2/语句块2
另外,Python为体现自己代码的简介特性,用“三元条件运算符”来实现某些简单“IF……Else……”。格式:
条件为真时的值 IF(条件表达式) Else 条件为假时的值
最后,还是用案例来验证吧:
IF……Else……案例
三元条件运算符案例
【3】多项选择
还是先看多分支的流程图:
多分支流程图
从图就可以想象一个人在生活中如果碰到需要从这么多选项中做出抉择,那真是一件十分令人痛苦的事情。
在Python当中,IF语句如何实现这些选项的全覆盖呢?
先看看语法格式吧:
if 条件表达式1:语句1/语句块1elif:条件表达式2语句2/语句块2...elif 条件表达式n:语句n/语句块n[else:语句n+1/语句块n+1]
【注】计算机行业中,描述语法格式时,是用中括号[]通常表示可选,而非必选。
先看案例:通过输入的学生成绩,判断雪是是否不及格(小于60分)、及格(60~79)、良好(80~89)、优秀(90~100)。
分析思路:
1、用input()接收键盘输入值,并转化为整数;
2、从小到大逐级比较,输入的值落到哪个范围对应相应的评级。
代码及执行效果见图:
多分支选择案例
【注】上面案例中蕴含了隐藏条件。譬如判断score<80时没写score>60,是因为上一个判断条件score<60为False就表示了score>60;其他类推。
【4】选择嵌套
回顾下自己在生活中的选择,上面三种情况其实还是相对理想化的,更常见的应该是很多选择是在前一个选择的基础上做出的。Python中针对这种场景提供了“选择嵌套”功能。
还是以上面判断学生等级为例,其实我们忽略了一个最关键的问题:成绩一般是0~100分的数字,假如输入的时候不小心输入负数或大于100呢?
分析思路:
1、第一次判断:判断输入的值如果不在0~100之间,则提示重新输入一个符合规范的分数值;
2、第二次判断:输入的值在0~100之间,则进入“多分支选择”。
优化代码及其执行效果图:
感言:
编程语言的学习就是一个多练习的过程。在不停地敲代码过程中理解Python精义,在理解的过程中又用敲代码的方式来解答与验证自己的疑问点,逐渐巩固自己对Python这门语言的理解,直至掌握,无捷径可走。