在实际生活中,我们经常会遇到需要分类统计的情况。对不同分类或不同状态,做不同处理,如果用程序实现的话,可以用if语句来实现。
if语句用于检测是否满足某个条件。如果满足,则执行一个代码块;如果不满足,则执行另一个代码块。if语句的一般格式如下。
这是只有两种情况的处理方式,如果情况更多,可以使用更多分支的if语句,如以下代码样例。
if语句以关键字if开头,然后是一个布尔表达式或if条件,if条件后面是一个冒号,代码块1、代码块2等都缩进4格,以相同缩进作为代码块的标志,同级代码块必须用相同的缩进格数。多一个或少一个格数都会报错,这条规则必须严格遵守。Python将冒号作为一行if语句、循环语句、函数定义的结束标记。
给出一个年龄值,利用if-elif-else结构,判断该年龄值属于哪个年龄段,以下是实现代码。
根据给定年龄值判断属于哪个年龄段的问题,if的条件也可用and连接。
如果要判断一个元素是否在一个列表或元组中,可以使用in或not in的方法。当列表非常大时,这种方法的效率非常高。例如,判断"keras"是否在列表lst42=["Pythoon","Numpy","Matplotlib","OpenCV","Sklearn","Pytorch","Keras","TensorFlow"]中,假设列表lst42表示目前环境已安装的软件。使用if语句中带not的条件即可,具体实现如下。
结果:keras不在列表中。
这个结果与我们的期望不一样,keras应该在lst42中。不过仔细再看一下,问题在大小写上,lst42中是"Keras",第一个字母是大写,而我们使用的keras为小写。因此,可以把lst42的字符全变成小写,然后再进行比较,修改后的代码如下。
结果:keras在列表中。
Python是通过缩进来判断是否属于一个代码块的,而不是通过显式的{}或[]等来说明,所以出现缩进问题不易被发现。与缩进有关的还有冒号,在Python中冒号往往表示一个语句的结束。下面先看一些易疏忽的问题。
1.忘记缩进
这个if语句将报错,因为if a<10:的下一语句没有缩进。
2.忘记加冒号
这个语句将会在else报错,因为else后没有冒号。
3.有缩进,但缩进的格数不同
这个if语句也会报错,因为这两个print语句属于同一级的逻辑块,但缩进的格数不一致。
为避免类似问题,在编写代码时,建议尽量使用一些工具,如PyCharm或Jupyter等。使用这些工具,遇到冒号或回车将自动缩进,而且报错后,出错的地方会高亮或被标注。