我对python中if、elif、else的误解

今天下午在练习python时用了“if...if...else...”的分支结构,结果运行出来吓我一跳。原来我想当然的认为“if...if...else...”是“if...elif...else...”的简化结构(这个错误的看法好像还是从学C语言继承过来的)。学了这么多天才发现其中的区别啊。下面先说说python,然后再说一下C语言里面的if语句。

 

“python中通过if、elif、else等保留字提供单分支、二分支和多分支结构。”

1.单分支结构(if语句)

if<条件>:
    <语句块>

2. 二分支结构(if-else语句)

if <条件>:
    <语句块1>
else :
    <语句块2>

3.多分支结构(if-elif-else语句)(else可选)

if <条件1> :
    <语句块1>
elif <条件2> :
    <语句块2>
...
else :
    <语句块N>

因此如果依次写了几个“if语句”,没有else或者elif,那么每个“if语句”都将会被评估且执行一遍,结果为True的条件下面的语句块都会被执行。同样如果你写了几个“if语句”,然后在最后写了一个else,那也只能被认为是几个单分支结构然后并列了一个二分支结构,而不是一个多分支结构。因此在运行的时候,除最后一个if外,前面的“if语句”都将会被评估且执行一次,然后再执行最后的“if-else”这个二分支。而这个else恰好又是除最后一个if条件的补集,一般包含前面某个if语句的条件,因此else下面的语句块可能会被执行,而不会达到“if-elif-else”只取其一的效果。所以才会有我今天下午的吃惊!

 

我用一个简单的代码来对比一下这个结果:

第一幅图执行完第一个“if语句”,又执行了下面的“if-else”;第三幅图则是一个多分支,判断第一个条件结果为True后,执行下面的语句块,结束后跳出整个“if-elif-else”结构,运行结果正确。

 

 


在C语言里类似的结构好像被称为选择结构,最常用的有以下三种形式:

(1) if(表达式) 语句1

(2) if(表达式)
      语句1
    else
      语句2

(3) if(表达式1) 语句1
    else if(表达式2) 语句2
    else if(表达式3) 语句3
    .
    .
    .
    else if(表达式m) 语句m
    else 语句m+1

用法和python的单分支、二分支、多分支类似,所以说我从学C语言的时候这个地方就搞混了。“纸上得来终觉浅,绝知此事要躬行”啊!

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: if elif else流程图是一种表示程序流程的图形化工具,用于描述程序的条件分支和逻辑控制。在Python,if elif else语句用于实现条件分支控制,其流程图如下: ![if elif else流程图](https://cdn.jsdelivr.net/gh/lixinyu0325/cdn/img/20211021180750.png) 其,if语句用于判断条件是否成立,如果成立则执行if语句块的代码;如果不成立,则执行elif语句块的代码,如果还不成立,则执行else语句块的代码。在流程图,条件判断的结果用菱形表示,if语句块、elif语句块和else语句块用矩形表示。 ### 回答2: Pythonif elif else流程图可以表示为一种分支结构,它用于根据条件执行不同的代码。当需要在程序执行适当的代码块时,可以使用if语句来判断一个或多个条件,并根据条件结果执行特定的代码块。 if语句的基本语法格式如下: if 条件1: 代码块1 elif 条件2: 代码块2 else: 代码块3 可以看到,if语句由多个关键字和语句组成。其,关键字“if”用于判断给定的条件是否为真。如果条件为真,则执行代码块1。如果所评估的条件不为真,程序将转到elif语句。在这种情况下,程序将再次评估下一个条件。如果该条件为真,则执行代码块2。如果有多个elif子句,则程序将继续评估下一个条件并执行代码块。 如果以上所有条件都不适用,则程序将执行else代码块。这个代码块在if和elif代码块的条件都为false时执行。 if语句的执行流程如下图所示: ![if语句执行流程图](https://i.loli.net/2021/08/09/iYv3ZsK2DAUbNwe.png) 在if语句执行过程,如果满足任何一个条件,则立即执行对应的代码块并跳过余下的elif和else代码块。而当所有条件都不满足时,才会执行else代码块。 总之,if elif else流程图是Python的一种分支结构,用于根据条件执行不同的代码。我们可以根据程序需求进行条件分支和代码块的安排,以实现更加灵活的程序控制效果。 ### 回答3: Python是目前在各个领域都有涉及的编程语言,其在数据分析、机器学习等领域均有广泛的应用,而实现这些应用的过程if elif else语句也是最为基础的。 在Python,if语句的含义是“如果”,它用于判断某个条件是否为真。如果条件为真,就执行某个代码块,如果条件为假,就继续执行其他代码块。if语句的格式如下: if condition: code block #1 其,condition是一个条件表达式,如果它的值为True,就会执行code block #1的代码块;否则就不执行。 当需要同时判断多个条件时,可以使用elif语句。elif语句的含义是“否则如果”,它用于判断第一个条件是否为假,如果为真就执行第一个代码块,如果为假,就判断第二个条件是否为真,如果为真就执行第二个代码块,以此类推。elif语句的格式如下: if condition1: code block #1 elif condition2: code block #2 elif condition3: code block #3 ... else: code block #n 其,condition1、condition2、condition3等均为条件表达式,如果第一个条件表达式的值为False,就会依次判断接下来的条件表达式。如果所有的条件表达式的值都为False,则执行最后的else代码块。 可以将多个if…elif…else语句连接起来,形成复杂的逻辑结构,来实现更为复杂的处理逻辑。而在Python,if…elif…else语句的处理顺序是从上到下,只要其一个条件得到了满足,后面的所有语句将被忽略。同时Python还可以使用嵌套if语句来实现更为复杂的处理逻辑,它的结构如下: if condition1: if condition2: code block #1 else: code block #2 else: code block #3 总之,if…elif…else语句是Python常用的流程控制结构,用于根据不同的条件执行不同的代码块。在实际的应用,需要根据具体的情况来使用不同的条件表达式,以及不同的代码块,来实现所需的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L155JL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值