【Python 基础】控制流 - 2

程序执行

在第1篇的 hello.py 程序中,Python 开始执行程序顶部的指令,然后一条接一条往下执行。“程序执行”(或简称“执行”)这一术语是指当前被执行的指令。如果将源代码打印在纸上,在它执行时用手指指着每一行代码,你可以认为手指就是程序执行。

但是,并非所有的程序都是从上至下简单地执行。如果用手指追踪一个带有控制流语句的程序,可能会发现手指会根据条件跳过源代码,有可能跳过整个子句。

控制流语句

现在,让我们来看最重要的控制流部分:语句本身。语句代表了在下图的流程图中看到的菱形,它们是程序将做出的实际决定。
在这里插入图片描述

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.’)。

下图展示了这段代码的流程图:
在这里插入图片描述

else 语句

if 子句后面有时候也可以跟着 else 语句。只有 if 语句的条件为 False 时,else子句才会执行。在英语中,else 语句读起来可能是:“如果条件为真,执行这段代码。否则,执行那段代码”。else 语句不包含条件,在代码中,else 语句中包含下面部分:

  • else 关键字;
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 else 子句)

回到 Alice 的例子,我们来看看使用 else 语句的一些代码,在名字不是 Alice时,提供不一样的问候:

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

下图展示了这段代码的流程图:
在这里插入图片描述

elif 语句

虽然只有 if 或 else 子句会被执行,但有时候可能你希望,“许多”可能的子句中有一个被执行。elif 语句是“否则如果”,总是跟在 if 或另一条 elif 语句后面。它提供了另一个条件,仅在前面的条件为 False 时才检查该条件。在代码中,elif 语句总是包含以下部分:

  • elif 关键字;
  • 条件(即求值为 True 或 False 的表达式);
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 elif 子句)

让我们在名字检查程序中添加 elif,看看这个语句的效果:

if name == 'Alice':print('Hi, Alice.')
elif age < 12:print('You are not Alice, kiddo.')

这一次,检查此人的年龄。如果比 12 岁小,就告诉他一些不同的东西。可以在下图中看到这段代码的流程图:
在这里插入图片描述
如果 age < 12 为 True 并且 name == 'Alice’为 False,elif 子句就会执行。但是,如果两个条件都为 False,那么两个子句都会跳过。“不能”保证至少有一个子句会被执行。如果有一系列的 elif 语句,仅有一条或零条子句会被执行。一旦一个语句的条件为 True,剩下的 elif 子句会自动跳过。例如,打开一个新的文件编辑器窗口,输入以下代码,保存为 vampire.py:

if name == 'Alice':print('Hi, Alice.')
elif age < 12:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python基础知识——(004)

文章目录 P16——15. 布尔类型 P17——16. 类型转换函数 P18——17. eval函数 P19——18. 算数运算符 P20——19. 赋值运算符 P16——15. 布尔类型 布尔类型 用来表示 “真” 值或 “假” 值的数据类型在Python中使用标识符 True 或 False 表示布尔类型的值True表示整数1&…

【vue】下载 打印 pdf (问题总结)- 持续更新ing

这里是目录标题 一、pdf1.查看 下载一、pdf 1.查看 下载 样式 Code<template><div><el-table :data="pdfList" style="width: 100%" border ><el-table-columnprop="index"label="序号"width="80"ali…

【UE5.1】NPC人工智能——01 准备NPC角色

效果 步骤 1. 之前我们已经创建了“BP_NPC”&#xff08;见&#xff1a;【UE5.1 角色练习】06-角色发射火球-part2&#xff09; 该蓝图继承于角色类 我们在该蓝图中添加了两个方法和两个变量。方法一个是用于修改角色HP值的&#xff0c;另一个是在收到伤害后执行的逻辑。两个…

面试题005-Java-JVM(上)

面试题005-Java-JVM(上) 目录 面试题005-Java-JVM(上)题目自测题目答案1. JVM由哪几部分组成&#xff1f;2. 运行时数据区中包含哪些区域&#xff1f;3. 栈和堆中分别存放什么数据&#xff1f;4. 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) &#xff1f;5. 堆空间的…

千万慎投!自引率高达93%!这16本On hold正处于高危状态,无法检索,剔除岌岌可危中!近四年镇压期刊“出狱”情况一览

本周投稿推荐 SCI • 能源科学类&#xff0c;1.5-2.0&#xff08;25天来稿即录&#xff09; • CCF推荐&#xff0c;4.5-5.0&#xff08;2天见刊&#xff09; • 生物医学制药类&#xff08;2天逢投必中&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09…

20240712 每日AI必读资讯

&#x1f4f0;人工智能现状报告最新重要发现&#xff01;&#xff01; - 国外软件开发平台 Retool 日前调查约 750 位技术人员发现&#xff0c;AI 的采用率并没有飙升&#xff0c;但工作岗位的替代危机正在上演。 - AI 的采用率真的在飙升吗&#xff1f;真实现状&#xff1a;…

缓冲器的重要性,谈谈PostgreSQL

目录 一、PostgreSQL是什么二、缓冲区管理器介绍三、缓冲区管理器的应用场景四、如何定义缓冲区管理器 一、PostgreSQL是什么 PostgreSQL是一种高级的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它以其稳定性、可靠性和高度可扩展性而闻名。它最初由加…

sqli-labs2

sqli-labs2 1.按照路径http://localhost/sqli-labs/sqli-labs-master/Less-2/进入 2.确认注入类型----数字型 Payload&#xff1a;?id1 and 11-- 3. 判断注入点&#xff1a;2&#xff0c;3 Payload&#xff1a;id-1 union select 1,2,3 -- 4.根据注入点查询数据库名----sec…

防火墙基础实验

首先交换机配置 [LSW7]undo info-center enable [LSW7]vlan batch 2 3 [LSW7]int g0/0/2 [LSW7-GigabitEthernet0/0/2]port link-type access [LSW7-GigabitEthernet0/0/2]port default vlan 2 [LSW7-GigabitEthernet0/0/2]int g0/0/3 [LSW7-GigabitEthernet0/0/3]port link-…

码云远程仓库, 回滚到指定版本号

1. 打开项目路径, 右击Git Bash Here 2. 查找历史版本 git reflog 3. 回退到指定版本 git reset --hard 版本号 4. 强制推送到远程 git push -f

#VERDI# 关于如何查看FSM状态机的方法

关于Verdi中查看状态机的问题,想必大家都duniang 一大把资料可以看,今天,主要在前人讲解的基础之上,这里添加一些自己的心得体会。为什么呢? 说来惭愧,自己工作几个年头了,但是对于Verdi中查查看状态机,还是心里有一些抵触。 今天,花点时间整理一下分享大家,如有不…

windows上修改redis端口号

概况 redis是一个开源的内存数据结构存储系统&#xff0c;常用做数据库、缓存和消息代理。默认的端口号为6379 更改redis端口号步骤如下 先停止redis服务 redis-cli shutdowm 打开redis配置文件 在redis安装目录下&#xff0c;即redis.windows.conf文件。 port 6396 然后…

轴心轨迹的绘制(包含降噪前处理,MATLAB)

由于旋转机械振动波形的噪声干扰大&#xff0c;直接对振动数据特征提取和选择的故障诊断方法&#xff0c;其精度容易受到噪声影响。当前&#xff0c;基于图像的旋转机械故障诊断技术已经得到飞速的发展。针对旋转机械的故障诊断问题&#xff0c;传统方法趋向于从振动数据中提取…

240707-Sphinx配置Pydata-Sphinx-Theme

Step A. 最终效果 Step B. 为什么选择Pydata-Sphinx-Theme主题 Gallery of sites using this theme — PyData Theme 0.15.4 documentation Step 1. 创建并激活Conda环境 conda create -n rtd_pydata python3.10 conda activate rtd_pydataStep 2. 安装默认的工具包 pip in…

记录文字视差背景学习

效果图 文字背景会随鼠标上下移动变成红色或透明 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

SpringCloud架构师面试

一、微服务是什么 1、基本概念 微服务是一种架构风格&#xff08;区别于单体架构、垂直架构、分布式架构、SOA架构&#xff09;&#xff0c;应用程序被划分为更小的、流程驱动的服务。 2、微服务的特征 轻量化&#xff1a;将复杂的系统或者服务进行纵向拆分&#xff0c;每个…

Android数据库基础

目录 1、安卓数据存储方式 2、数据库事务 数据库事务的特性(ACID) 事务的隔离级别 事务总结 3、ContetProvider 作用 ​编辑 统一资源标识符URI ​编辑 MIME类型 ContentProvider主要方法 4、ContentResolver 作用 主要方法 使用案例 辅助工具类 ContentUris Uri…

BPMN.js学习

查看流程图 processView: {title: ,open: false,index: undefined,xmlData:"", },<el-table-column label"模型名称" align"center" :show-overflow-tooltip"true"><template slot-scope"scope"><el-button…

抖音短视频矩阵系统源码开发与部署全解析

1. 需求分析与功能规划 在着手开发短视频矩阵源码之初&#xff0c;首要任务是界定项目需求。这包含对视频上传、编辑、分享、评论及点赞等功能的实现预期。同时&#xff0c;需深入理解目标用户群体的具体需求和使用习惯&#xff0c;以确保产品能够满足市场需求。 2. 技术选型…

游戏如何应对黑灰产工作室

游戏黑灰产工作室&#xff0c;是指以非法渠道、非法手段通过游戏进行牟利的团伙。使用脚本、外挂是黑灰产工作室的显著特征&#xff0c;其常见的牟利方式有&#xff1a;打金工作室、资源囤积号、初始号、自抽号、代练工作室以及营销欺诈等。 ▲ 常见的游戏黑灰产工作室牟利路径…