大爽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

大爽Python入门教程 3-2 条件判断: if...elif..else的更多相关文章

  1. 大爽Python入门教程 3-3 循环:`for`、`while`

    大爽Python入门公开课教案 点击查看教程总目录 for循环 可迭代对象iterable 不同于其他语言. python的for循环只能用于遍历 可迭代对象iterable 的项. 即只支持以下语法 ...

  2. 大爽Python入门教程 3-4 实践例题

    大爽Python入门公开课教案 点击查看教程总目录 1. 求和 使用循环,计算列表所有项的和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11 ...

  3. 大爽Python入门教程 3-1 布尔值: True, False

    大爽Python入门公开课教案 点击查看教程总目录 1 布尔值介绍 从判断说起 回顾第一章介绍的简单的判断 >>> x = 10 >>> if x > 5: ...

  4. 大爽Python入门教程 3-5 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  5. 大爽Python入门教程 3-6 答案

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  6. 大爽Python入门教程 2-5 *拓展实践,对比与思考

    大爽Python入门公开课教案 点击查看教程总目录 本文偏难. 推荐等第一二三四章上完后,回过来拓展阅读. 基础情景思考 假设有这样一张成绩表 最左边的一列是名字,起名麻烦. 这里直接用ABC...来 ...

  7. 大爽Python入门教程 总目录

    作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 大爽Python入门公开课教案 本篇博客为公开课教案目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节, ...

  8. 大爽Python入门教程 2-2 序列: 字符串、元组与列表

    大爽Python入门公开课教案 点击查看教程总目录 序列 序列(sequence): 顾名思义,有序的排列. 有序排列的一串数据. 一种容器,容器内成员有序排列. python的字符串str,元组tu ...

  9. 大爽Python入门教程 2-3 字符串,列表,字典

    大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...

随机推荐

  1. PHP的SPL扩展库(一)数据结构

    SPL 库也叫做 PHP 标准库,主要就是用于解决典型问题的一组接口或类的集合.这些典型问题包括什么呢?比如我们今天要讲的数据结构,还有一些设计模式的实现,就像我们之前讲过的观察者模式相关的接口在 S ...

  2. MyBatis 批量插入数据的 3 种方法!

    批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 ...

  3. css超出隐藏显示省略号怎么设置?

    当我们在进行网页前端开发的时候,一般获取文章标题,然后一行一行的显示.但是当标题过长的时候,就会造成换行显示.还有显示部分文本信息时,如果全部显示就过于繁琐,会带来不会的网页体验感.虽然我们可以使用o ...

  4. 题解 UVA1500 Alice and Bob

    题目传送门 题目大意 给出 \(n\) 堆石子,每次可以做以下两种操作之一: 将某两堆石子进行合并 将某一堆石子抽走一个石子 问谁必胜. 思路 就nm很妙好么? 首先,我们需要考虑每堆石子大小都 \( ...

  5. Flask 易错点

    1.With上下文管理器 常用: with open("file_name","wb") as f: f.write("hello flask&quo ...

  6. Linux argc,argv详解

    来源:微信公众号「编程学习基地」 @ 目录 argc,argv是什么 如何解析程序参数 "选项"是什么? "选项字符串"是什么 解析参数 argc,argv是什 ...

  7. Java:重载和重写

    Java:重载和重写 对 Java 中的 重载和重写 这个概念,做一个微不足道的小小小小结 重载 重载:编译时多态,同一个类中的同名的方法,参数列表不同,与返回值无关. 有以下几点: 方法名必须相同: ...

  8. [软工顶级理解组] Beta阶段项目展示

    目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...

  9. reactnative实现qq聊天消息气泡拖拽消失效果

    前言(可跳过) 我在开发自己的APP时遇到了一个类似于qq聊天消息气泡拖拽消息的需求,因为在网上没有找到相关的组件,所以自己动手实现了一下 需求:对聊天消息气泡拖拽到一定长度松开时该气泡会消失(可自行 ...

  10. NOIP模拟86(多校19)

    T1 特殊字符串 解题思路 \(f_{i,j}\) 表示前 \(i\) 个字符中结尾为 \(j\) 的最大贡献. 转移枚举当前位置于之前位置结尾的组合加上贡献即可. 对于边界问题,容易发现选择 1 一 ...