理解条件测试后就可以编写If语句了。If语句有很多种,选择使用哪种取决于要测试的条件数。
5.3.1 简单的if语句
最简单的 if 语句只有一个测试和一个操作:
if conditional_test:
do something
第一行可包含任何条件测试,儿在紧跟在测试后面的缩进代码块中,可执行任何操作。如果条件测试的结果为True,py就会执行紧跟在后面的代码,否则py将忽略这些代码。
假设有一个表示某人年龄的变量,而你想知道这个人是否符合投票的年龄,可以使用如下代码:
age = 19
if age>=18:
print("you are old enough to vote!")
print("Have you registered to vote yet?")
输出:you are old enough to vote!
Have you registered to vote yet?
5.3.2 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!")
如果age>=18,d第一处条件测试通过了,就执行第一组缩进的函数调用print().如果测试结果为FALSE,就执行后面的else代码块.
输出:sorry,you are too young to vote.
Please register to vote as soon as you turn 18!
5.3.3 if-elif-else结构
我们经常需要检查超过2个的情形,为此可使用py提供的if-elif-else结构。PY只执行if-elif-else结构中的一个代码块。他依次检查每个条件测试,直到遇到通过了的条件测试。条件通过后py将执行紧跟在他后面的代码,并跳过余下的测试.
在现实世界中,很多情况下需要考虑的情形超过2个。例如,来看一个根据年龄段收费的游乐场;
1.4岁一下免费;
2.4-18岁收费25元;
3.18岁(含)以上收费40美元。
如果只使用一条 if 语句:
age=12
if age<4:
print("Your admission cost in 0.")
elif age<18:
print("Your admission cost in 25.")
else:
print("Your admission cost in 40.")
输出:Your admission cost in 25.
为了让代码更整洁,可不在if-elif-else代码块中打印门票的价格,而只在其中设置门票价格,并在它后面添加一个简单的函数调用print():
age=12
if age<4:
price=0
elif age<18:
price=25
else:
price=40
print("Your admission cost is{price}.")
5.3.4使用多个elif代码块
可根据需要使用任意数量的elif代码块。
5.3.5省略else的代码块
python并不要求if-elif结构后面必须else有代码块。else 是一条包罗万象的语句,只要不满足任何 if 或 elif 中的条件测试,其中的代码就会执行。这可能引人无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个 elif 代码块来代替 else 代码块。这样就可以肯定,仅当满足相应的条件时,代码才会执行。
5.3.6 测试多个条件
if-elif-else 结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了的测试后,Python 就跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的条件。然而,有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含 elif和 else代码块的简单 if 语句。在可能有多个条件为 True 且需要在每个条件为 True 时都采取相应措施 ,适合使用这种方法。
就一直用 if 语句,不用elif 或 else 语句。