Python入门(六)if语句(一)
作者:xiou
1.概述
编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检查程序的当前状态,并采取相应的措施。
2.一个简单的实例
下面是一个简短的示例,演示了如何使用if语句来正确地处理特殊情形。
假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,应以首字母大写的方式打印其名称,但对于汽车名’bmw’,应以全大写的方式打印。下面的代码遍历这个列表,并以首字母大写的方式打印其中的汽车名,不过对于’bmw’,则以全大写的方式打印:
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
这个示例中的循环首先检查当前的汽车名是否是’bmw’。如果是,就以全大写方式打印,否则以首字母大写的方式打印:
这个示例涵盖了本章将介绍的很多概念。下面先来介绍可用来在程序中检查条件的测试。
3. 条件测试
每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。
3.1 检查是否相等
大多数条件测试将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值是否与特定值相等:
>>> car = 'bmw'
>>> car == 'bmw'
True
首先使用一个等号将car的值设置为’bmw’,这种做法你已经见过很多次。接下来,使用两个等号(==)检查car的值是否为’bmw’。这个相等运算符在两边的值相等时返回True,否则返回False。在本例中,两边的值相等,因此Python返回True。
>>> car = 'audi'
>>> car == 'bmw'
False
一个等号是陈述,两个等号则是发问,变量car的值是’bmw’吗?大多数编程语言使用等号的方式与这里演示的相同。
3.2 数值比较
检查数值非常简单。例如,下面的代码检查一个人是否是18岁:
>>> age = 18
>>> age == 18
True
还可检查两个数是否不等。例如,下面的代码在提供的答案不正确时打印一条消息:
answer = 17
if answer != 42:
print("That is not the correct answer. Please try again!")
answer的值(17)不是42,条件得到满足,因此缩进的代码块得以执行:
3.3 检查多个条件
你可能想同时检查多个条件。例如,有时候需要在两个条件都为True时才执行相应的操作,而有时候只要求一个条件为True。在这些情况下,关键字and和or可助你一臂之力。
(1)使用and检查多个条件
要检查是否两个条件都为True,可使用关键字and将两个条件测试合而为一。如果每个测试都通过了,整个表达式就为True;如果至少一个测试没有通过,整个表达式就为False。
(2)使用or检查多个条件
关键字or也能够让你检查多个条件,但只要至少一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用or的表达式才为False。
3.4 布尔表达式
随着你对编程的了解越来越深入,将遇到术语布尔表达式,它不过是条件测试的别名。与条件表达式一样,布尔表达式的结果要么为True,要么为False。
布尔值通常用于记录条件,如游戏是否正在运行,或者用户是否可以编辑网站的特定内容:
game_active = True
can_edit = False
在跟踪程序状态或程序中重要的条件方面,布尔值提供了一种高效的方式。