前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第三章3:elif 语句

第三章3:elif 语句

作者头像
double
发布2021-03-12 11:15:43
5810
发布2021-03-12 11:15:43
举报
文章被收录于专栏:算法channel算法channel

周三: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 处理多个条件。让我们试试:

代码语言:javascript
复制
# 使用elif条件语句
x, y = 5, 10
if x > y:
    print("x is greater")
elif x < y:
    print("x is less")

在单元格中运行如上代码。输出结果为“x is less”。它首先检查if语句,但if条件不成立,继续检查elif条件语句,语句成立,elif中的代码得以运行。

检查多个elif条件

有能力基于一个变量写多条决策是必须的,这是elif语句存在的原因。例如如下代码:

代码语言:javascript
复制
# 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")

在单元格中运行如上代码,输出结果为“相等”。第一个if语句和elif语句都不成立,但第二个elif语句成立,这就是对应代码块运行的原因。你想写多少个elif语句就可以写多少个,但它们必须与if语句结合在一起。

注意 在条件里,我们应用了加法,但我们将加法括起来以便程序先执行数学运算。

条件中嵌套条件

我们已经掌握如何在python中使用缩排去分隔代码块。目前为止,我们只使用了一个缩排等级,但如果我们在if语句中添加一个if语句呢?

代码语言:javascript
复制
# 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语句连接在一起。所以一旦有一个条件语句成立,其余的条件语句都不会执行,让我们看一个例子:

代码语言:javascript
复制
# 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")

在单元格中运行如上代码,我们发现两个打印语句都输出了结果,这是由于这代码里有2个if语句。这些if语句没有关联起来,它们是独立的条件语句,不同于elif总是关联着if。

代码语言:javascript
复制
# 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")

在单元格中运行如上代码,我们发现到这里的输出只有“x is less”,没有包含第二个打印语句。这是因为elif是if语句的附属,一旦一个条件成立,其他条件都将被跳过即使它们本身都成立。

** 周三练习**

  1. 高于/低于:请求用户输入一个数字并是使用if/elif语句去打印它是高于100还是低于100.
  2. 找到解决方案:在如下给出的代码里,修正一个或者所有错误,已实现输出“Lower”:
代码语言:javascript
复制
x, y = 5, 10
if x > y:
print("greater")
try x < y:
print("lower")

今天学习了在创建程序的下一步就是做决策,不仅仅是一个决策,而是多个。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 周三:elif 语句
  • 运行原理
  • 写下你的第一个 Elif 语句
  • 检查多个elif条件
  • 条件中嵌套条件
  • if语句对比elif语句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档