假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其名称,但对于汽车名”bmw”,应以全大写的方式打印。
一个简单的示例
cars.py
cars=['audi','bmw','subaru','toyota']
for car in cars:
if car=='bmw':
print(car.upper())
else:
print(car.title())
Audi
BMW
Subaru
Toyota
条件测试
每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是false来决定是否执行if语句中的代码。
检查是否相等
>>> car='bwm'
>>> car=='bwm'
True
我们首先使用一个等号将car的值设为‘bwm’,接下来,使用两个等号(==)检查car的值是否为‘bwm’。这个相等运算符在它两边的值相等时返回True,否则返回False。
>>> car='audi'
>>> car=='bmw'
False
注意:Python在检查时区分大小写,检查不相等的时候用(!=)。
检查多个条件
你可能想同时检查多个条件,在这种情况下,关键字and和or可助你一臂之力。
使用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
使用or检查多个条件
关键字or也能够让你检查多个条件,但只要至少有一个条件满足,就能通过整个测试。
>>> 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
检查特定值是否包含在列表中
要判断特定的值是否包含在列表中,可使用关键字in。来看你可能为比萨店编写的一些代码;这些代码首先创建一个列表,其中包含用户点的披萨配料,然后检查特定的配料是否包含在该列表中。
>>> requested_toppings=['mushrooms','oninos','pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False
检查特定值是否不包含在列表中
还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字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.")
Marie,you can post a response if you wish.
布尔表达式
随着你对编程的了解越来越深入,将遇到术语布尔表达式,它不过是条件测试的别名。与条件表达式一样,布尔表达式的结果要么为True,要么为False。
布尔值通常用于记录条件,如游戏是否在运行,或用户是够可以编辑网站的特定内容:
game_active=true
can_edit=False
在跟踪状态或程序中重要的条件方面,布尔提供了一种高效的方式。
if-else语句
经常需要在测试测试通过了时执行一个操作,并没有通过执行另一个操作;在这种情况下可以使用python提供的if-else语句。if-else语句块类似于简单的if语句,但其中的else语句让你能够指定条件测试未通过时要执行的操作。
age=17
if age>=18:
print("you are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("sorry,you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
sorry,you are too young to vote.
Please register to vote as soon as you turn 18!
if-elif-else结构
经常需要检查超过两个的情形,为此可以用Python提供的if-elif-else结构。Python只执行if-else-else结构中的一个代码块,它依次检查每个条件的测试,直到通过了的条件测试。
age=12
if age<4:
print("You admission cost is $0.")
elif age<18:
print("You admission cost is $5.")
else:
print("You admission cost is $10.")
You admission cost is $5.
使用if元素处理列表
通过结合使用if语句列表,可完成一些有趣的任务:对列表中特定的值特殊处理;高效的管理不断变化的情形,如餐馆是否还有特定的食材;证明代码在各种情形下都按预期那样运行。
available_toppings=['mushrooms','olives','green peppers'
'ppepperoni','pineapple','extra cheese']
requested_toppings=['mushrooms','french fries','extra cheese']
for requested_topping in requested_toppings:
if requested_topping in available_toppings:
print("Adding "+requested_topping+".")
else:
print("Sorry, we don't have"+requested_topping+".")
print("\nFinished making your pizza!")
Adding mushrooms.
Sorry, we don't havefrench fries.
Adding extra cheese.
Finished making your pizza!