前言
在Python中,由于列表是比较重要的,因此,我们前面通过三篇文章给大家介绍了列表。主要包括列表的概念以及相关的操作,另外还介绍了元组以及切片的相关使用,并且陆续给大家介绍一些编写代码注意的事项,这些对于刚学编程语言的读者来说是很重要的。本文给大家介绍Python中if语句的具体使用。首先我们通过一个案例来说明Python中为什么会用到if语句。
一、一个简单案例
下面我们通过一个简短的示例,演示了如何使用if语句来正确地处理特殊情形。假设我们有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其名称,但对于汽车名’bow’,应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大写的方式打印其中的汽车名,但对于汽车名’bmw’,以全大写的方式打印,具体实现如下:
cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())
这个示例的循环首先检测当前的汽车名是否是’bmw’,如果是,就以全大写的方式打印它,否则就以首字母大写的方式打印,具体执行结果如下:
这个示例涵盖了我们本文介绍的很多概念,接下来给大家介绍可用来在程序中检查条件的测试。
二、条件测试
每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True或False来决定是否执行if语句的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。
1、检查是否相等
大多数条件测试都将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值是否与特定值相等;具体实现如下:
car = 'bmw' print(car == 'bmw')
我们首先使用一个等号将car的值设置为 ‘bmw’,这种做法我们称之为赋值运算。接下来使用两个等号(==)检查car的值是否为’bmw’,这个相等运算符在他们两边的值相等时返回True,否则返回false。在这个示例中,两边的值相等,因此Python返回True,具体执行结果如下:
如果变量car的值不是bmw,则上述的测试将返回False,具体如下:
car = 'audi' print(car == 'bmw')
具体的执行结果如下:
这里向大家介绍在任何的编程语言里,一个等号是表示赋值,两个等号是表示匹配。
2、检查是否相等时不考虑大小写
在Python中检查是否相等时区分大小写,例如:两个大小写不同值会被视为不相等,具体如下:
car = 'Audi' print(car == 'audi')
具体执行结果如下:
如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,在进行比较,具体实现如下:
car = 'Audi' print(car.lower() == 'audi')
具体执行结果如下:
无论值Audi的大小写如何,上述的测试都返回True,因为该测试不区分大小写。函数lower()不会修改存储在变量car中的值,因此,进行这样的比较时不会影响原来的变量:
car = 'Audi' print(car.lower() == 'audi') print(car)
我们将首字母大写的字符串’Audi’存储在变量car中;另外我们获取变量car的值,并将其转换为小写,再将结果与字符串audi进行比较。这两个字符串相同,因此,Python返回True,这个条件测试并没有影响存储在变量car中值。具体执行结果如下:
网站采用类似的方式让用户输入的数据符合特定的格式。例如,网站可能使用类似的测试来确保用户名是独一无二的,而并非只是与另一个用户名的大小写不同。用户提交新的用户名时,将把它转换为小写,并与所有既有用户名的小写版本进行比较。执行这种检查时,如果已经有用户名’join’,则用户提交用户名’join’时将遭到拒绝。
3、检查是否不相等
要判断两个值是否不相等,可结合使用感叹号与等号相结合(!=),其中的感叹号表示否定,这在很多编程语言都是通用的。下面我们再使用一条if语句来演示如何使用不等运算符。我们将把要求的披萨配料存储在一个变量中,再打印一条信息,指出顾客要求的配料是否是意式小银鱼,具体实现如下:
requested_topping = 'mushrooms' if requested_topping != 'anchovies': print("Hold the anchovvies")
我们将requested_topping的值与’anchovies’进行比较,如果它们不相等,Python返回True,进而执行紧跟在if语句后面的代码,若这两值相等,Python将返回False,因此,不执行紧跟在if语句后面的代码。由于requested_topping的值不是’anchovies’,因此执行print语句如下:
我们在编写的大多数条件表达式都检查两个值是否相等,但有时候检查两个值是否不等的效率更高。
4、比较数字
检查数值非常简单,例如下面的代码检查一个人是否是18岁,具体实现如下:
age = 18 print(age == 18)
执行结果如下:
我们还可以检查两个数字是否不等,例如,下面的代码在提供的答案不正确的时候打印一条信息,具体实现如下:
answer = 17 if answer != 42: print("That is not correct answer.Please try again!")
answer(17)不是42,因此if条件得到满足,因此缩进代码块可以执行,具体实现结果如下:
条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于等,具体实现如下:
age = 19 print(age < 21) print(age <= 21) print(age > 21) print(age >= 21)
具体执行效果如下:
在if语句中可使用各种数学比较,这让我们能够直接检查关心的条件。
5、检查多个条件
我们可能有的时候想检查多个条件,例如:有时候我们需要在两个条件都为True时才执行相应的操作,而有时候我们只要求一个条件为True时就执行相应的操作。在这些情况下,关键字and和for可助你一臂之力。
- 1、使用and检查多个条件
要检查是否两个条件都为True,可使用关键字and将两个条件测试合二为一;如果每个测试都过了,整个表达式就为True;如果至少有一个测试没有通过,则整个表达式为False。例如我们要检查是否两个人都不小于21岁,可以使用下面的测试:
age_0 = 23 age_1 = 18 print(age_0 >= 21 and age_1 >=21) age_1 = 21 print(age_0 >= 21 and age_1 >=21)
我们首先定义了两个用于存储年龄的变量age_0、age_1。然后,我们检查这两个变量是否都大于或等于21;左边的测试通过了,但右边的测试都没通过,因此整个条件表达式的结果为False。接着我们将age_1改为22,这样age_1的值大于21,因此,两个测试都通过了,导致整个条件表达式的结果为True。具体执行结果如下:
我们为了改善可读性,将每个测试都分别放在一个括号内,但并非必须这样做。如果你使用括号,测试将类似于下面这样:
(age_0 >= 21)and(age_1 >= 21)
- 2、使用or检查多个条件
关键字or也能够让你检查多个条件,但只要至少有一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用or的表达式才为False。下面再次检查两个人的年龄,但检查的条件是至少有一个人的年龄不小于21岁。
age_0 = 23 age_1 = 18 print(age_0 >= 21 or age_1 >=21) age_0 = 18 print(age_0 >= 21 or age_1 >=21)
同样,我们首先定义了两个用于存储年龄的变量age_0、age_1。由于age_0的测试通过了,因此整个表达式的结果为True。接下来,我们将age_0减小为18;在测试都没通过,因此整个表达式的结果为False。具体执行结果如下:
6、检查特定值是否包含在列表中
有时候,执行操作前必须检查列表是否包含特定的值。例如,结束用户的注册过程中,可能需要检查它提供的用户名是否已经包含在用户名列表中。在地图程序中,可能需要检查用户提交的位置是否包含在已知位置列表中。
要判断特定的值是否已包含在列表中,可使用关键字in。来看我们可能为比萨店编写的一些代码;这些代码首先创建一个列表,其中包含用户点的比萨配料,然后检查特定是否包含在该列表中,具体如下:
requested_topping = ['mushrooms', 'onions', 'pineapple'] print('mushrooms' in requested_topping) print('pepperoni' in requested_topping)
我们将关键字in让Python检查列表requested_topping是否包含mushrooms和pepperoni。具体执行结果如下:
这种技术很有用,它让你能够在创建一个列表后,轻松的检查其中是否包含特定的值。
7、检查特定值是否不包含在列表中
还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字not in。例如,如果有一个列表,其中包含被禁止在论坛上发表评论用户,就可在允许用户提交评论前检查他是否被禁言;具体实现如下:
banned_users = ['andrew', 'carolina', 'david'] user = 'marie' if user not in banned_users: print(user.title() + ", you can post a response if you wish.")
如果user值未包含在列表banned_users中,Python将返回ture,进而执行缩进的代码行。用户marie未包含在列表banned_user中,因此她将看到一条邀请她发表评论的消息,具体执行结果如下:
8、布尔表达式
随着我们对编程的了解越来越深入,将遇到术语布尔表达式,它将不过是条件测试的别名。与条件表达式一样,布尔表达式的结果要么为True,要么为False.布尔值通常用于记录条件,如游戏是否正在运行,或用户是否可以编辑网站的特定内容:
game_active = True can_edit = False
在跟踪程序状态或程序中重要的条件方面,布尔值提供了一种高效的方式。
总结
在Python中,由于列表是比较重要的,因此,我们前面通过三篇文章给大家介绍了列表。主要包括列表的概念以及相关的操作,另外还介绍了元组以及切片的相关使用,并且陆续给大家介绍一些编写代码注意的事项,这些对于刚学编程语言的读者来说是很重要的。本文给大家介绍Python中if语句的具体使用。Python是一门注重实际操作的语言,它是众多编程语言中最简单,也是最好入门的。当你把这门语言学会了,再去学习java、go以及C语言就比较简单了。当然,Python也是一门热门语言,对于人工智能的实现有着很大的帮助,因此,值得大家花时间去学习。生命不息,奋斗不止,我们每天努力,好好学习,不断提高自己的能力,相信自己一定会学有所获。加油!!!