大爽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. Django+Nginx+Uwsgi(全网最全步骤工作原理流程与部署历程)

    一.必要前提 1.1 准备知识 django 一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. uWSGI 一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网 ...

  2. CentOS 7安装docker环境

    一.环境准备 Docker支持以下的CentOS版本: 1.Docker运行在CentOS 7(64-bit)上要求系统为64位,系统内核版本为3.10以上 2.Docker运行在Centos 6.5 ...

  3. Flutter随笔(二)——使用Flutter Web + Docker + Nginx打造一个简单的Web项目

    前言 Flutter作为一个跨平台UI框架,功能十分强大,仅用一套代码便能编译出Android.iOS.Web.windows.macOS.Windows.Linux等平台上的应用,各平台应用体验高度 ...

  4. 1. SSTI(模板注入)漏洞(入门篇)

    好久没更新博客了,现在主要在作源码审计相关工作,在工作中也遇到了各种语言导致的一些SSTI,今天就来大概说一下SSTI模板注入这个老生常谈的漏洞 前言 模板引擎 模板引擎(这里特指用于Web开发的模板 ...

  5. 深入理解Java虚拟机之垃圾回收篇

    垃圾回收简介 ​ Java 会对内存进行自动分配与回收管理,使上层业务更加安全,方便地使用内存实现程序逻辑.在不同的 JVM 实现及不同的回收机制中,堆内存的划分方式是不一样的. ​ 简要地介绍下垃圾 ...

  6. Redis大集群扩容性能优化实践

    一.背景 在现网环境,一些使用Redis集群的业务随着业务量的上涨,往往需要进行节点扩容操作. 之前有了解到运维同学对一些节点数比较大的Redis集群进行扩容操作后,业务侧反映集群性能下降,具体表现在 ...

  7. PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)

    1007 素数对猜想 (20分) 让我们定义d​n为:dn = pn+1 − pn,其中p​i是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...

  8. NX屏蔽窗口的按钮

    有时候在激活一个命令按钮的时候,需要同时禁止掉另外一个或多个命令按钮 ''' <summary> ''' 取按钮是否敏感 ''' </summary> ''' <para ...

  9. Vulnhub实战-FALL靶机👻

    Vulnhub实战-FULL靶机 下载地址:http://www.vulnhub.com/entry/digitalworldlocal-fall,726/ 1.描述 通过描述我们可以知道这个靶机枚举 ...

  10. javascript-jquery选择器

    jquery选择器用来获得jquery对象 我们用一个实例来演示jquery与原生的区别 <div id="title">123</div>原生获得元素的方 ...