大爽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
。
大爽Python入门教程 3-2 条件判断: if...elif..else的更多相关文章
- 大爽Python入门教程 3-3 循环:`for`、`while`
大爽Python入门公开课教案 点击查看教程总目录 for循环 可迭代对象iterable 不同于其他语言. python的for循环只能用于遍历 可迭代对象iterable 的项. 即只支持以下语法 ...
- 大爽Python入门教程 3-4 实践例题
大爽Python入门公开课教案 点击查看教程总目录 1. 求和 使用循环,计算列表所有项的和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11 ...
- 大爽Python入门教程 3-1 布尔值: True, False
大爽Python入门公开课教案 点击查看教程总目录 1 布尔值介绍 从判断说起 回顾第一章介绍的简单的判断 >>> x = 10 >>> if x > 5: ...
- 大爽Python入门教程 3-5 习题
大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...
- 大爽Python入门教程 3-6 答案
大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...
- 大爽Python入门教程 2-5 *拓展实践,对比与思考
大爽Python入门公开课教案 点击查看教程总目录 本文偏难. 推荐等第一二三四章上完后,回过来拓展阅读. 基础情景思考 假设有这样一张成绩表 最左边的一列是名字,起名麻烦. 这里直接用ABC...来 ...
- 大爽Python入门教程 总目录
作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 大爽Python入门公开课教案 本篇博客为公开课教案目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节, ...
- 大爽Python入门教程 2-2 序列: 字符串、元组与列表
大爽Python入门公开课教案 点击查看教程总目录 序列 序列(sequence): 顾名思义,有序的排列. 有序排列的一串数据. 一种容器,容器内成员有序排列. python的字符串str,元组tu ...
- 大爽Python入门教程 2-3 字符串,列表,字典
大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...
随机推荐
- PHP的SPL扩展库(一)数据结构
SPL 库也叫做 PHP 标准库,主要就是用于解决典型问题的一组接口或类的集合.这些典型问题包括什么呢?比如我们今天要讲的数据结构,还有一些设计模式的实现,就像我们之前讲过的观察者模式相关的接口在 S ...
- MyBatis 批量插入数据的 3 种方法!
批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 ...
- css超出隐藏显示省略号怎么设置?
当我们在进行网页前端开发的时候,一般获取文章标题,然后一行一行的显示.但是当标题过长的时候,就会造成换行显示.还有显示部分文本信息时,如果全部显示就过于繁琐,会带来不会的网页体验感.虽然我们可以使用o ...
- 题解 UVA1500 Alice and Bob
题目传送门 题目大意 给出 \(n\) 堆石子,每次可以做以下两种操作之一: 将某两堆石子进行合并 将某一堆石子抽走一个石子 问谁必胜. 思路 就nm很妙好么? 首先,我们需要考虑每堆石子大小都 \( ...
- Flask 易错点
1.With上下文管理器 常用: with open("file_name","wb") as f: f.write("hello flask&quo ...
- Linux argc,argv详解
来源:微信公众号「编程学习基地」 @ 目录 argc,argv是什么 如何解析程序参数 "选项"是什么? "选项字符串"是什么 解析参数 argc,argv是什 ...
- Java:重载和重写
Java:重载和重写 对 Java 中的 重载和重写 这个概念,做一个微不足道的小小小小结 重载 重载:编译时多态,同一个类中的同名的方法,参数列表不同,与返回值无关. 有以下几点: 方法名必须相同: ...
- [软工顶级理解组] Beta阶段项目展示
目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...
- reactnative实现qq聊天消息气泡拖拽消失效果
前言(可跳过) 我在开发自己的APP时遇到了一个类似于qq聊天消息气泡拖拽消息的需求,因为在网上没有找到相关的组件,所以自己动手实现了一下 需求:对聊天消息气泡拖拽到一定长度松开时该气泡会消失(可自行 ...
- NOIP模拟86(多校19)
T1 特殊字符串 解题思路 \(f_{i,j}\) 表示前 \(i\) 个字符中结尾为 \(j\) 的最大贡献. 转移枚举当前位置于之前位置结尾的组合加上贡献即可. 对于边界问题,容易发现选择 1 一 ...