热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2.5控制流的元素条件代码块程序执行控制流语句if语句

2.5控制流的元素控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”。在开始学习具体的Python控制流语句之前,我将介

2.5    控制流的元素
控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”。在开始学习具体的Python 控制流语句之前,我将介绍条件和代码块。


2.5.1    条件

你前面看到的布尔表达式可以看成是条件,它和表达式是一回事。“条件”只是在


控制流语句的上下文中更具体的名称。条件总是求值为一个布尔值,True 或False。控制流语句根据条件是True 还是 False,来决定做什么。几乎所有的控制流语句都使用条件。


2.5.2    代码块

一些代码行可以作为一组,放在“代码块”中。可以根据代码行的缩进,知道

代码块的开始和结束。代码块有 3 条规则。
1.缩进增加时,代码块开始。
2.代码块可以包含其他代码块。
3.缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束了。
看一些有缩进的代码,更容易理解代码块。所以让我们在一小段游戏程序中,

寻找代码块,如下所示:

if   name   ==   'Mary':
➊            print('Hello   Mary')
if   password   ==   'swordfish':
➋            print('Access   granted.') else:
➌            print('Wrong   password.')

第一个代码块➊开始于代码行print('Hello  
Mary'),并且包含后面所有的行。在这个代码块中有另一个代码块➋,它只有一行代码:print('Access 
Granted.')。第三个代码块➌也只有一行:print('Wrong password.')。


2.6    程序执行
在第 1 章的 hello.py 程序中,Python 
开始执行程序顶部的指令,然后一条接一条往下执行。“程序执行”(或简称“执行”)这一术语是指当前被执行的指令。如果将源代码打印在纸上,在它执行时用手指指着每一行代码,你可以认为手指就是程序执行。
但是,并非所有的程序都是从上至下简单地执行。如果用手指追踪一个带有控制流语句的程序,可能会发现手指会根据条件跳过源代码,有可能跳过整个子句。

2.7    控制流语句
现在,让我们来看最重要的控制流部分:语句本身。语句代表了在图 2-1 的流程图中看到的菱形,它们是程序将做出的实际决定。


2.7.1    if 语句


最常见的控制流语句是 if 语句。if 语句的子句(也就是紧跟 if 语句的语句块),

将在语句的条件为True 时执行。如果条件为 False,子句将跳过。
在英文中,if 语句念起来可能是:“如果条件为真,执行子句中的代码。”在 Python
中,if 语句包含以下部分:
•    if 关键字;
•    条件(即求值为 True 或 False 的表达式);
•    冒号;
•    在下一行开始,缩进的代码块(称为 if 子句)。
例如,假定有一些代码,检查某人的名字是否为 Alice(假设此前曾为 name
赋值)。

if  name  ==  'Alice': print('Hi,  Alice.')
所有控制流语句都以冒号结尾,后面跟着一个新的代码块(子句)。语句的 if
子句是代码块,包含 print('Hi, Alice.')。图 2-3 展示了这段代码的流程图。

图 2-3    if 语句的流程图


2.7.2  else 语句
if 子句后面有时候也可以跟着 else 语句。只有 if 语句的条件为 False 时,else子句才会执行。在英语中,else  
语句读起来可能是:“如果条件为真,执行这段代码。否则,执行那段代码”。else  语句不包含条件,在代码中,else  语句中包含下面部分:
•    else 关键字;
•    冒号;
•    在下一行开始,缩进的代码块(称为 else 子句)。
回到 Alice  的例子,我们来看看使用 else  语句的一些代码,在名字不是 Alice
时,提供不一样的问候。

if  name  ==  'Alice': print('Hi,  Alice.')
else:
print('Hello,  stranger.')

图 2-4 展示了这段代码的流程图。


推荐阅读
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文讨论了在使用pytorch进行二分类问题的模型预测时,为什么会出现概率大于1或小于0的情况,给出了相关代码和解决方法。同时,还介绍了使用pytorch进行模型训练和优化的步骤。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 这是一个愚蠢的问题,但我只是对此感到好奇.假设我在Pythonshell,我有一些我查询的数据库对象.我做:db.query(的queryString)该查询在0xffdf842c ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
author-avatar
小白一枚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有