大爽Python入门教程 3-2 条件判断: if...elif..else

大爽Python入门公开课教案 点击查看教程总目录

简单回顾if

回顾下第一章的代码

>>> x = 5
>>> if x > 0:
...     print("x is greater than 0")
...
x is greater than 0

当时是从朴素的逻辑角度去理解的。
现在详细的说一下这个。

if语句的基础形式如下

if condition:
    statement  # code block
  • conditionTrue,代表if判断成功,则执行冒号下面的缩进的代码块statement
  • conditionFalse,代表if判断不成功,不执行冒号后面的statement

补充:如果condition不是布尔值,那就会先计算出condition的布尔值。

if...else

if常常会和else连用。
其语法格式如下

if condition:
    statement1  # code block for True
else:
    statement2  # code block for False

conditionTrue,代表if判断成功,执行statement1
conditionFalse,代表if判断不成功,进入else情况,执行statement2

代码示例

>>> x = 5
>>> if x > 0:
...     print("x is greater than 0")
... else:
...     print("x is less than or equal to 0")
x is greater than 0
>>> x = - 1
>>> if x > 0:
...     print("x is greater than 0")
... else:
...     print("x is less than or equal to 0")
x is less than or equal to 0

if...elif

有时候,我们可能需要判断多个场景。
比如:
如果是场景A,则如何如何。
如果是场景B,则如何如何。
如果是场景C。。。。。。

这个时候就需要使用elif
其基础格式如下

if condition1:
    statement1  # code block for condition1
elif condition2:
    statement2  # code block for condition2
  1. condition1True,代表if判断成功,执行statement1
    (不进入后面的elif判断)。
  2. condition1False,代表if判断不成功,进入elif判断。
    • condition2True,代表elif判断成功,执行statement2
    • condition2False,代表elif判断不成功,不执行statement2

且可以不断地在后面补充elif

if condition1:
    statement1  # code block for condition1
elif condition2:
    statement2  # code block for condition2
elif condition3:
    statement2  # code block for condition2
elif condition4:
    statement2  # code block for condition2
  1. condition1True,代表if判断成功,执行statement1
    (不进入后面的elif判断)。
    condition1False,代表if判断不成功,进入下面第1个elif判断。
  2. condition2True,代表第1个elif判断成功,执行statement2(不再进入后面的elif判断)。
    condition2False,代表第1个elif判断不成功,进入下面第2个elif判断。
  3. condition3True,代表第2个elif判断成功,执行statement3(不再进入后面的elif判断)。
    condition3False,代表第2个elif判断不成功,进入下面第3个elif判断。
  4. condition4True,代表第3个elif判断成功,执行statement4
    condition4False,代表第3个elif判断不成功。

代码示例。
比如我们之前的习题,根据左转的次数判断其方位。

小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度),
小明面朝哪里?

这个就可以使用上面的elif来弄

times = 51
di = times % 4

if di == 0:
    print("north")
elif di == 1:
    print("west")
elif di == 2:
    print("south")
elif di == 3:
    print("east")

其输出为

east

改变times,输出也会更着发生对应变化。

if...elif...else

实际上,对于上面的例子。
最后一个判断是没必要,或者说多余的。
因为总共就四种情况,不是第一二三种的话,就必然是第四种。
所以最后一个elif判断,可以直接换成else
即如下

times = 51
di = times % 4

if di == 0:
    print("north")
elif di == 1:
    print("west")
elif di == 2:
    print("south")
else:
    print("east")

else上面的所有ifelif都为False时。
会进入else

一般情况数量固定,当其他情况都判断之后,
最后剩下的一个情况不用判断,直接使用else

posted @ 2021-09-12 21:19  大爽歌python编程辅导  阅读(204)  评论(0编辑  收藏  举报