if语句
1.简单的if语句
最简单的if语句只有一个测试和一个操作。 假设有一个表示某人年龄的变量,而你想知道这个人是否够投票的年龄,可使用如下代码:
age = 19
if age >= 18:
print("You are old enough to votel")
Python检查变量age的值是否大于或等于18;答案是肯定的,因此Python执行print语句:
You are old enough to votel
在if语句中,缩进的作用与for循环中相同。 如果测试通过了,将执行if语句后面所有缩进的代码行,否则将忽略它们。
age = 19
if age >= 18:
print("You are old enough to votel")
print("Good!")
打印结果:
You are old enough to votel
Good!
2.if-else语句
在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的if-else语句。
age = 17
if age >= 18:
print("You are old enough to votel")
print("Good!")
else:
print("Sorry!")
如果if条件测试通过了,就执行第一个缩进的print语句块;如果测试结果为False,就执行else代码块。
输出结果为:
Sorry!
if-else结构非常适合用于要让Python执行两种操作之一的情形。 在这种简单的if-else结构中,总是会执行两个操作中的一个。
3.if-elif-else结构
检查超过两个的情形,为此可使用Python提供的if-elif-else结构。 Python只执行if-elif-else结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。 测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。 例如:
age= 12
if age < 4:
print("免费")
elif age < 18:
print("需支付5元")
else:
print("需支付10元")
打印结果为:
需支付5元
为让代码更简洁,可以在其中设置价格,并在它后面添加一条简单的print语句:
age= 12
if age < 4:
price = 0
elif age < 18:
price = 5
else:
price = 10
print("需支付:"+ str(price) + "元")
打印结果为:
需支付:5元
除效率更高外,这些修订后的代码还更容易修改:要调整输出消息的内容,只需修改一条而不是三条print语句。
4.使用多个elif代码块
可根据需要使用任意数量的elif代码块。 例如:
age= 50
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
else:
price = 5
print("需支付:"+ str(price) + "元")
打印结果为:
需支付:10元
5.省略else代码块
Python并不要求if-elif结构后面必须有else代码块。在有些情况下,else代码块很有用;而在其他一些情况下,使用一条elif语句来处理特定的情形更清晰:
age= 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
elif age >=65:
price = 5
print("需支付:"+ str(price) + "元")
经过这样的修改后,每个代码块都仅在通过了相应的测试时才会执行。
6.测试多个条件
有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含elif和else代码块的简单if语句。在可能有多个条件为True,且你需要在每个条件为True时都采取相应措施时,适合使用这种方法。 例如:
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms." )
if 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("Finished making your pizza!")
打印结果:
Adding mushrooms.
Adding extra cheese.
Finished making your pizza!
不管前两个测试的结果如何,都会执行这些代码。 每当这个程序运行时,都会进行这三个独立的测试。 在这个示例中,会检查每个条件,因此将在比萨中添加蘑菇并多加芝士。 如果像下面这样转而使用if-elif-else结构,代码将不能正确地运行,因为有一个测试通过后,就会跳过余下的测试:
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms." )
elif 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
elif 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("Finished making your pizza!")
第一个测试检查列表中是否包含'mushrooms',它通过了,因此添加。然而,Python将跳过if-elif-else结构中余下的测试,不再检查列表中是否包含'extra cheese'和'pepperoni'。其结果是,直接跳转到最后的print语句输出。 如果你只想执行一个代码块,就使用if-elif-else结构;如果要运行多个代码块,就使用一系列独立的if语句。