5. Python if语句

5. if语句

编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检查程序的当前状态,并据此采取相应的措施。在本章中,你将学习条件测试,以检查感兴趣的任何条件。你将学习简单的if语句,以及创建一系列复杂的if语句来确定当前到底处于什么情形。接下来,你将把学到的知识应用于列表,以编写for循环,以一种方式处理列表中的大多数元素,并以另一种不同的方式处理包含特定值的元素。

5.1 一个简单示例

下面是一个简短的示例,演示了如何使用if语句来正确地处理特殊情形。假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其名称,但对于汽车名"bmw',应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大写的方式打印其中的汽车名,但对于汽车名"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

这个示例涵盖了本章将介绍的很多概念。下面先来介绍可用来在程序中检查条件的测试。

5.2 条件测试

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

5.2.1 检查是否相等

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

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

我们首先使用一个等号将car的值设置为’bmw’,这种做法你已见过很多次。接下来使用两个等号(==)检查car的值是否为'bmw'。这个相等运算符在它两边的值相等时返回True,否则返回False。在这个示例中,两边的值相等,因此Python返回True。如果变量car的值不是'bmw',上述测试将返回False:

>>>car = 'audi'
>>>car == 'bmw'
False

一个等号是陈述;对于第一行的代码,可解读为“将变量car的值设置为’audi’”。两个等号是发问;对于第二行的代码,可解读为“变量car的值是"bmw'吗?”。大多数编程语言使用等号的方式都与这里演示的相同。

5.2.2 检查是否相等时不考虑大小写

在Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等:

>>>car = 'Audi'
>>>car == 'audi'
False

如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较:

>>>car = 'Audi'
>>>car.lower() == 'audi'
True

无论值'Audi'的大小写如何,上述测试都将返回True,因为该测试不区分大小写。函数lower()不会修改存储在变量car中的值,因此进行这样的比较时不会影响原来的变量

>>>car = 'Audi'
>>>car.lower() == 'audi'
True
>>>car
'Audi'

在第一行,我们将首字母大写的字符串’Audi’存储在变量car中;在第二行,我们获取变量car的值并将其转换为小写,再将结果与字符串’audi’进行比较。这两个字符串相同,因此Python返回True。从第四行的输出可知,这个条件测试并没有影响存储在变量car中的值。

网站采用类似的方式让用户输人的数据符合特定的格式。例如,网站可能使用类似的测试来确保用户名是独一无二的,而并非只是与另一个用户名的大小写不同。用户提交新的用户名时.将把它转换为小写,并与所有既有用户名的小写版本进行比较。执行这种检查时,如果已经有用户名'iohn'(不管大小写如何) ,则用户提交用户名 ‘John’时将遭到拒绝。

猜你喜欢

转载自blog.csdn.net/Allen1862105/article/details/128995607