Day13:elif 语句
条件语句赋予我们在程序中做决策的能力,但目前为止,我们只看到了它能力的冰山一角。今天我们开始学习 elif 语句,它们赋予我们基于条件分别运行代码块的能力,它们也被称为“else if 语句”。
跟着今天的课程,让我们在之前的"Week_03"文件中最下面增加一个单元格并标注“Elif Statements”.
运行原理
在前面的课程我们学到,条件语句赋予我们在程序中做决策的能力,接下来学习如何进行多项决策。在 Python 中,我们使用 elif 语句基于提供的条件做另一项决策。elif 语句必须结合 if 语句使用,意味着你不能脱离 if 去单独创建一个 elif 语句。Python 由上到下处理代码,所以它先处理 if 语句,如果 if 语句不成立,它再继续处理第一个 elif 语句去检查它的条件。如果条件仍然不成立,python继续执行下个一条件语句直到所有条件语句都检查完毕。然后,一旦有一个条件语句成立,其他所有的条件语句都会被跳过,即使它们的条件成立。它运行的机制是只在第一个成立的条件时运行对应的代码块。
写下你的第一个 Elif 语句
创建一个跟 if 语句一模一样的 elif 语句,有一点不同,就是使用关键词 elif 替代if。你就可以使用 elif 处理多个条件。让我们试试:
# 使用elif条件语句
x, y = 5, 10
if x > y:
print("x is greater")
elif x < y:
print("x is less")
检查多个elif条件
有能力基于一个变量写多条决策是必须的,这是elif语句存在的原因。例如如下代码:
# checking more than one elif conditional statement
x, y = 5, 10
if x > y:
print("x is greater")
elif (x + 10) < y: # checking if 15 is less than 10
print("x is less")
elif (x + 5) == y: # checking if 10 is equal to 10
print("equal")
注意 在条件里,我们应用了加法,但我们将加法括起来以便程序先执行数学运算。
条件中嵌套条件
我们已经掌握如何在python中使用缩排去分隔代码块。目前为止,我们只使用了一个缩排等级,但如果我们在if语句中添加一个if语句呢?
# writing multiple conditionals within each other - multiple block levels
x, y, z = 5, 10, 5
if x > y:
print("greater")
elif x <= y:
if x == z:
print("x is equal to z") # resulting output
elif x != z:
print("x is not equal to z") # won't get hit
在单元格中运行如上代码,输出为“x is equal to z”。分解这段代码,第一个if语句不成立,接下来的elif语句成立,所以运行对应的代码块。进入到代码块中是另一条件语句,所以先检查if语句,条件成立,然后运行对应模块里面的代码。
if语句对比elif语句
你即将要理解的是使用elif语句和使用多个if语句最大的区别,所有elif语句都跟一个原始if语句连接在一起。所以一旦有一个条件语句成立,其余的条件语句都不会执行,让我们看一个例子:
# testing output of two if statements in a row that are both true
# 在一行中测试两个都成立的if语句
x, y, z = 5, 10, 5
if x < y:
print("x is less")
if x == z:
print("x is equal")
# testing output of an if and elif statement that are both true
# 测试if和elif条件都成立时的输出
x, y, z = 5, 10, 5
if x < y:
print("x is less")
elif x == z:
print("x is equal to z")
** 练习 1. 高于/低于:请求用户输入一个数字并是使用if/elif语句去打印它是高于100还是低于100. 2. 找到解决方案**:在如下给出的代码里,修正一个或者所有错误,已实现输出“Lower”:
x, y = 5, 10
if x > y:
print("greater")
try x < y:
print("lower")
今天学习了在创建程序的下一步就是做决策,不仅仅是一个决策,而是多个。