Python(四)if语句

105 阅读5分钟

在Python中,if语句让你能够检查程序的当前状态,并采取相应的措施。

一、一个简单的示例

下面的示例演示了如何使用if语句来正确地处理特殊的情形。假设你有一个汽车列表,想将其中每辆汽车的名称打印出来。对于大多数汽车,应以首字母大写的方式打印其名称,但是汽车名“bmw”应以全大写的方式打印。

cars=['audi','bmw','subaru','toyota']
for car in cars:
    if car=='bmw':
        print(car.upper())
    else:
        print(car.title())

示例中的循环首先检查当前汽车名是否是'bmw',如果是,就以全大写的方式打印,否则以首字母大写的方式打印:

Audi
BMW
Subaru
Toyota

二、条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试。Python根据条件测试的值是True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。

1、检查是否相等

大多数条件测试将一个变量的当前值与特定的值进行比较。最简单的条件测试检查变量的值是否与特定的值相等:

>>> car='bmw'
>>> car=='bmw'
True

相等运算符在它两边的值相等时返回True,否则返回False。

2、检查是否不等

要判断两个值是否不等,可使用不等运算符(!=)。

animal='cat'
if animal!='dog':
    print("It is not a dog")

3、数值比较

条件语句可包含各种数学比较,如小于、小于等于、大于、大于等于、等于、不等于。

>>> age=19
>>> age<11
False
>>> age<=21
True
>>> age>21
False
>>> age>=21
False

4、检查多个条件

(1)使用and检查多个条件

要检查两个条件是否都为True,可使用关键字and将两个条件测试合二为一。如果每个条件测试都通过了,整个表达式就为True;如果至少一个条件测试没有通过,整个表达式就为False。

>>> age_0=22
>>> age_1=18
>>> age_0>=21 and age_1>=21
False
>>> age_1=22
>>> age_0>=21 and age_1>=21
True

(2)使用or检查多个条件

关键字or也能够让你检查多个条件,但只要满足其中一个条件,就能通过整个条件测试。仅当所有条件测试都没有通过时,使用or的表达式才为False。

>>> age_0=22                
>>> age_1=18 
>>> age_0>=21 or age_1>=21  
True
>>> age_0=18               
>>> age_0>=21 or age_1>=21
False

5、检查特定的值是否在列表中

要判断特定的值是否在列表中,可使用关键字in。

>>> animals=['cat','dog','fish']
>>> 'fish' in animals
True
>>> 'horse' in animals
False

6、检查特定的值是否不在列表中

在这种情况下,可使用关键字not in。

>>> animals=['cat','dog','fish']
>>> 'fish' not in animals
False
>>> 'horse' not in animals
True

7、布尔表达式

与条件表达式一样,布尔表达式的结果要么为True,要么为False。布尔值通常用于记录条件。

active=true

三、if语句

1、简单的if语句

最简单的if语句只有一个条件测试和一个操作:

if conditional_test:
    do something

第一行可包含任意条件测试,而在紧跟在测试后面的缩进代码块中可执行任意操作。如果条件测试的结果为True,Python就会执行紧跟在if语句后面的代码块,否则Python将忽略这些代码。

2、if-else语句

if-else语句块类似于简单的if语句,但其中的else语句让你能够指定条件测试未通过时要执行的操作。

if animal!='dog':
    print("It is not a dog")
else:
    print("It is a dog")

3、if-elif-else语句

如需要检查两个以上的情形,此时可使用Python提供的if-elif-else语句。Python只执行if-elif-else结构中的一个代码块。它依次检查每个条件测试,直到遇到通过了的条件测试。条件测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的条件测试。

age=12
if age<4:
    print("Your age is less than 4")
elif age<18:
    print("Your age is less than 18")
else:
    print("Your age is less than or equal to 18")

4、使用多个elif代码块

可以根据需要使用任意数量的elif代码块。

age=12
if age<4:
    price=0
elif age<18:
    price=10
elif age<65:
    price=40
else:
    price=20

5、省略else代码块

Python并不要求if-elif结构后面必须有else代码块。else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行。这可能引入无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块。这样仅当满足相应的条件时,代码才会执行。

四、使用if语句处理列表

1、检查特殊元素

如示例中处理特殊值"bmw"。

2、确定列表非空

首先创建一个空列表,然后进行检查,在if语句中将列表名用作条件表达式时,Python将在列表至少包含一个元素时返回True,在列表为空时返回False。

animals=[]
if animals:
    for animal in animals:
        print(animal)
else:
    print("No animals")

注:对于数值0、空值None、单引号空字符串''、双引号空字符串""、空列表[]、空元组()、空字典{},Python都会返回False。

3、使用多个列表

animals=['dog','cat','rabbit','horse']
small_animals=['dog','cat','rabbit']
for small_animal in small_animals:
    if small_animal in animals:
        print(small_animal)