干货:python入门if语句及其列表操作

65 阅读4分钟

本教程使用的课本是《Python编程:从入门到实践》,作者:[美] Eric Matthes

本节学习代码中针对不同情况进行分别处理的方法,关键字是if。学完这节,从理论上讲,你就可以编写任意复杂的程序了。因为计算机科学家已经证明了:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。顺序结构就是一行一行按顺序写的代码,循环结构就是之前学过的for语句,选择结构就是用if语句写出的带有分支的代码。

一、if语句介绍

举个例子,我们需要从众多的下朋友中找到‘小明’,并告诉他,他妈妈喊他回家吃饭了,见下面的代码:

names = ['小明','小张','小王','小雷','小李'] for name in names: if(name == '小明'): print(name,'你妈喊你回家吃饭啦!')

注意if的语句后有一个冒号“:”,少了这个编译器会报错。如果把if这条语句注释掉,则会喊所有的小朋友回家吃饭,见下面的执行结果,现在知道if是做什么用了吧。

二、条件测试

If语句括号中的代码被称为“条件测试”,测试条件的值可以是True或者False。如果值是True,Python就执行紧跟在if 语句后的代码。如果为False ,Python就不执行这些代码。

上面if语句中两个等号“==”的意思是判断两边的值是否相等,如果相等,则整个括号表达式的结果为True,否则是False。因为上例中‘小张’等小朋友与‘小明’不相等,所以不会执行if后面的print语句。

下面是一些常用的比较符号:

不等于:!=

大于或大于等于:> >=

小于或小于等于:< <=

If语句中的条件测试还可以用and或or来连接,and是两个条件都满足才为True,否则为False,而or是两个条件都不满足才为False,否则就为True。比如检查两个人是否都达到18岁,可以这样写:if((age1 >= 18) and (age2 >= 18)),下面是一些例子:

age = 15 age2 = 17 if(age <= 18): print('未成年人半价') if(age >= 18): #这条不会执行 print('成年人收全价票') if(age != 12): print('您的年龄不是12岁') if(age <= 18 and age2 <=18): print('两个人都是未成年人,全部收半价票')

三、if语句的拓展

可以用if-elif-else这种形式来进行多次的判断,如果其中一个条件成立,那么Python就会执行这个条件下面的代码,其他条件不管是否成立,里面的代码不执行。比如一个景区的景点针对不同年龄段收费,1-8岁免费,9-14岁半价,15-69岁全价,70岁及以上免费,写这种判断用if-elif-else最简单。

ages = [15,4,21,69,77] # 1-8岁免费,9-14岁半价,15-69岁全价,70岁及以上免费 for age in ages: if(age < 9 ): print('1-8岁免费',age) elif(age < 15): print('9-14岁半价',age) elif(age < 70): print('15-69岁全价',age) elif(age >= 70): print('70岁及以上免费',age) else: print('这条语句永远不被执行')

我们稍微改造一下上面的代码,将elif(age < 15):改成elif(age < 99):,可以看到除了4满足第一个条件外,其他所有的元素都被第二个条件(age<99)拦截住了,后面的代码不会执行。

if-elif-else中的else是只前面的所有条件都不满足才执行它下面的代码。

if-elif-else虽然好用,但当要判断多个条件的时候就没办法了,这个时候只需要写多个单独的if()语句就行。

四、用if语句处理列表元素

我们在第一个例子“小明的妈妈喊他回家吃饭”就展示过用if语句处理列表元素的情况,下面做一些扩展。特别说明一下,用in关键字可以判断一个元素是否在列表中,not in用来判断元素不在列表中。

1、列表为空

之前我们都默认列表不为空,但列表是可以为空的,如果列表为空,我们可能要做一些初始化的动作,用If语句可以判断列表是否为空,增加程序的健壮性。

names = [] if names: for name in names: if(name == '小明'): print(name,'你妈喊你回家吃饭啦!') else:print('列表为空')

2、多个列表循环

比如我们举办了个晚会,提前发了请帖,没有在清单内的人禁止进入。这里我们有一个清单列表list_ok,还有一个来参加晚会的人员列表list_forcheck,我们需要对参加的人逐个筛选,在清单内的人打印“欢迎光临”,不在清单内的人打印“抱歉!没有邀请函无法进入!”。

list_ok = ['小明','小张','小王','小雷','小李'] list_forcheck = ['小明','小于','小张','小王','小英','小雷','小李'] for member in list_forcheck: if(member in list_ok): print(member,'欢迎光临!') else: print(member,'抱歉!没有邀请函无法进入!')

文章转载