大爽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
condition
为True
,代表if
判断成功,则执行冒号下面的缩进的代码块statement
。condition
为False
,代表if
判断不成功,不执行冒号后面的statement
。
补充:如果condition
不是布尔值,那就会先计算出condition
的布尔值。
if...else
if
常常会和else
连用。
其语法格式如下
if condition:
statement1 # code block for True
else:
statement2 # code block for False
condition
为True
,代表if
判断成功,执行statement1
。
condition
为False
,代表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
condition1
为True
,代表if
判断成功,执行statement1
(不进入后面的elif
判断)。condition1
为False
,代表if
判断不成功,进入elif
判断。condition2
为True
,代表elif
判断成功,执行statement2
。condition2
为False
,代表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
condition1
为True
,代表if
判断成功,执行statement1
(不进入后面的elif
判断)。
condition1
为False
,代表if
判断不成功,进入下面第1个elif
判断。condition2
为True
,代表第1个elif
判断成功,执行statement2
(不再进入后面的elif
判断)。
condition2
为False
,代表第1个elif
判断不成功,进入下面第2个elif
判断。condition3
为True
,代表第2个elif
判断成功,执行statement3
(不再进入后面的elif
判断)。
condition3
为False
,代表第2个elif
判断不成功,进入下面第3个elif
判断。condition4
为True
,代表第3个elif
判断成功,执行statement4
。
condition4
为False
,代表第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
上面的所有if
和elif
都为False
时。
会进入else
。
一般情况数量固定,当其他情况都判断之后,
最后剩下的一个情况不用判断,直接使用else
。