【0010】Python流程控制结构-分支结构详解

如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢!

本文内容体系结构如下:
在这里插入图片描述

分支结构是编程中的基本控制结构之一,它允许程序根据条件判断执行不同的代码路径。通过本文,你将学会如何使用ifif-elseif-elif-else等语句,以及如何嵌套使用这些语句。此外,我们还会通过流程图直观地展示分支结构的执行流程。

流程控制是编程中的一个核心概念,它决定了程序执行的顺序和路径。通过流程控制,我们可以让程序根据条件选择执行不同的代码块,或者重复执行某些代码块。流程控制结构有顺序结构、分支结构和循环结构三种。其中顺序结构表示代码从上往下按照顺序执行,很简单,不用多讲。本文主要讲分支结构,下一篇文章讲循环结构。

一、分支结构简介

分支结构(也称为条件结构、选择结构)允许程序根据条件表达式的值执行不同的代码块。在Python中,分支结构主要通过if语句实现。条件表达式通常涉及比较运算符(如==><等)和逻辑运算符(如andornot等)。

二、Python中的分支结构

2.1 if 语句

if语句是最基本的分支结构,用于在条件为真时执行特定的代码块。适用于只有一种分支的情况下。

(1)语法结构
if 条件表达式:# 条件为真时执行的代码块
(2)执行规律
  1. 判断条件表达式的结果
  2. 如果条件表达式为True,执行里面的代码块,执行完之后继续执行if结构后面的代码
  3. 如果条件表达式为False,跳过if结构,执行if结构后面的代码

注意:条件表达式可以是布尔值、关系运算符执行结果和逻辑运算符执行结果

流程图:
在这里插入图片描述

(3)演示示例
num1 = 12
if num1>10:print("num1大于10")num2 = 8
if num2>10:print("num2大于10")
(4)执行结果

在这里插入图片描述

2.2 if-else 语句

if-else语句用于在条件为真时执行一个代码块,否则执行另一个代码块。适用于两种分支的情况下

(1)语法结构
if 条件表达式:# 条件为真时执行的代码块
else:# 条件为假时执行的代码块
(2)执行规律
  1. 判断条件表达式的结果
  2. 如果条件表达式为True,执行条件表达式后面的代码块,执行完之后继续执行if-else结构后面的代码
  3. 如果条件表达式为False,执行else后面的代码块,执行完之后继续执行if-else结构后面的代码

注意:条件表达式可以是布尔值、关系运算符执行结果和逻辑运算符执行结果

流程图:
在这里插入图片描述

(3)演示示例
num1 = 12
if num1>10:print("num1大于10")
else:print("num1小于等于10")num2 = 8
if num2>10:print("num2大于10")
else:print("num2小于等于10")
(4)执行结果

在这里插入图片描述

2.3 if-elif-else 语句

if-elif-else语句用于检查多个条件,并根据第一个满足的条件执行相应的代码块。如果没有条件满足,则执行else部分的代码块。

(1)语法结构
if 条件表达式1:# 条件表达式1为真时执行的代码块
elif 条件表达式2:# 条件表达式2为真时执行的代码块
......# 可以添加多个elif语句
elif 条件表达式n:# 条件表达式n为真时执行的代码块
else:# 所有条件都为假时执行的代码块
(2)执行规律
  1. 判断条件表达式1的结果
  2. 如果条件表达式1为True,执行条件表达式1后面的代码块,执行完之后继续执行if-elif-else结构后面的代码
  3. 如果条件表达式1为False,继续判断条件表达式2
  4. 如果条件表达式2为True,执行条件表达式2后面的代码块,执行完之后继续执行if-elif-else结构后面的代码
  5. 如果条件表达式2为False,继续判断…
  6. 如果条件表达式n为True,执行条件表达式n后面的代码块,执行完之后继续执行if-elif-else结构后面的代码
  7. 如果条件表达式n为False,执行else后面代码块

注意:else语句可以省略不写,如果所有条件表达式都为False,又省略了else,则if-elif-else结构不被执行。

注意:条件表达式可以是布尔值、关系运算符执行结果和逻辑运算符执行结果

流程图:
在这里插入图片描述

(3)演示示例:
score = 85
if score >= 90:print("优秀")
elif score >= 75:print("良好")
elif score >= 60:print("及格")
else:print("不及格")
(4)执行结果

在这里插入图片描述

2.4 嵌套if语句

嵌套if语句是指在一个if语句的代码块中再嵌套另一个if语句。这允许程序根据多个条件进行更复杂的判断。

(1)语法结构
if 条件表达式1:# 条件表达式1为真时执行的代码块if 条件表达式2:# 条件表达式1和条件表达式2都为真时执行的代码块else:# 条件表达式1为真,但条件表达式2为假时执行的代码块
else:# 条件表达式1为假时执行的代码块
(2)执行规律
  1. 判断条件表达式1的结果

  2. 如果条件表达式1为True,执行条件表达式1后面的代码块,然后判断条件表达式2

    如果条件表达式2为True,执行条件表达式2后面的代码块,执行完之后继续执行嵌套if结构后面的代码

    如果条件表达式2为False,执行里面else后面的代码块,执行完之后继续执行嵌套if结构后面的代码

  3. 如果条件表达式1为False,则执行外面else后面的代码块

注意:嵌套if理论上可以任意层次的嵌套,但是不要过多嵌套,一般不超过三层,否则不利于代码阅读。

注意:条件表达式可以是布尔值、关系运算符执行结果和逻辑运算符执行结果

流程图:
在这里插入图片描述

(3)演示示例
age = 20
has_ticket = True
if age >= 18: # 年满18岁才有资格进入电影院if has_ticket:# 年满18岁并且有电影票才能进入电影院print("可以进入电影院")else:print("没有票,不能进入电影院")
else: print("未成年,不能进入电影院")
(4)执行结果

在这里插入图片描述

2.5 条件表达式

在Python中,条件表达式(也称为三元操作符或条件运算符)与许多其他编程语言(如C、C++、Java等)中的形式略有不同。在其他语言中,条件表达式通常写成 a > b ? a : b,这意味着“如果 a 大于 b,则结果为 a,否则结果为 b”。

然而,在Python中,这种语法是不被支持的。相反,Python使用了一种更冗长但更具可读性的语法来实现相同的功能。

(1)语法结构
result = 表达式1 if 条件表达式 else 表达式2
(2)执行规律
  1. 判断条件表达式的结果

  2. 如果条件表达式为True,将表达式1的值存储在变量result中

    如果条件表达式为False,将表达式2的值存储在变量result中

(3)演示示例
a = 10
b = 5
result = a if a > b else b
print(result)  # 输出: 10
(4)执行结果

在这里插入图片描述

值得注意的是,虽然Python的条件表达式比一些其他语言中的三元操作符更冗长,但它提供了更好的可读性,这对于编写和维护代码来说是非常重要的。此外,Python的语法设计也强调了代码的可读性和简洁性(尽管有时可能看起来不那么“紧凑”),这有助于减少错误并提高团队协作的效率。

三、课程总结

通过本文的学习,你掌握了Python中的分支结构语法,包括if语句、if-else语句、if-elif-else语句以及嵌套if语句。通过练习,多实践,熟练应用分支结构!

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

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

相关文章

个推助力小米米家全场景智能生活体验再升级

当AI如同水电煤一般融入日常&#xff0c;万物互联的图景正从想象照进现实。作为智能家居领域的领跑者&#xff0c;小米米家凭借开放的生态战略&#xff0c;已连接了超8.6亿台设备&#xff0c;构建起全球领先的消费级AIoT平台。如今&#xff0c;小米米家携手个推&#xff0c;通过…

鸿蒙启动页开发

鸿蒙启动页开发 1.1 更改应用名称和图标 1.更改应用图标 找到moudle.json5文件&#xff0c;找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可 2.更改应用名称 3.效果展示 2.1 广告页面开发 3.1 详细介绍 3.1.1 启动页面 import { PrivacyDialog } fr…

上海市闵行区数据局调研云轴科技ZStack,共探数智化转型新路径

为进一步深化人工智能、大模型技术的应用&#xff0c;推动区域数字经济高质量发展&#xff0c;2025年2月27日&#xff0c;上海市闵行区数据局局长吴畯率队赴上海云轴科技股份有限公司&#xff08;以下简称“云轴科技ZStack”&#xff09;开展专题调研。此次调研旨在深入了解企业…

idea实现热部署

1.在pom.xml文件添加依赖 java <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency> 更新可见配置成功&#xff1a; 2.在appli…

61. Three.js案例-彩色旋转立方体创建与材质应用

61. Three.js案例-彩色旋转立方体创建与材质应用 实现效果 知识点 WebGLRenderer(WebGL渲染器) 构造器 WebGLRenderer( parameters : Object ) 参数类型描述antialiasBoolean是否执行抗锯齿(默认false)alphaBoolean是否包含alpha通道(默认false)方法 setSize( width…

使用JMeter(组件详细介绍+使用方式及步骤)

JSON操作符 在我们使用请求时,经常会遇到JSON格式的请求体,所以在介绍组件之前我会将介绍部分操作符,在进行操作时是很重要的 Operator Description $ 表示根元素 当前元素 * 通配符,所有节点 .. 选择所有符合条件的节点 .name 子元素,name是子元素名称 [start:e…

tomcat的安装与配置(包含在idea中配置tomcat)

Tomcat 是由 Apache 软件基金会开发的开源 Java Web 应用服务器&#xff0c;主要用于运行 Servlet 和 JSP&#xff08;JavaServer Pages&#xff09;程序。它属于轻量级应用服务器&#xff0c;适用于中小型系统及开发调试场景&#xff0c;尤其在处理动态内容&#xff08;如 Jav…

快速开始React开发(一)

快速开始React开发&#xff08;一&#xff09; React是一个JavaScript库&#xff0c;用于构建交互式网站&#xff0c;并且能够快捷创建SPA&#xff08;Single Page App&#xff09;&#xff0c;其组件化的思想也是被一再传播&#xff0c;无论是普通的Web网站还是嵌入移动端交互…

安装nvidia-docker 和设置docker 镜像源

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 可以先参考官方文档 下面的操作具体和官方文档类似 curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-ke…

C++第二节:C/C++内存管理

1.C/C内存分布 【说明】 栈又叫堆栈--非静态局部变量/函数参数/返回值等等&#xff0c;栈是向下增长的。内存映射段是高效的I/O映射方式&#xff0c;用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存&#xff0c;做进程间通信。堆用于程序运行时动态内存分…

rust编程实战:实现3d粒子渲染wasm

源码 纯js实现 fps&#xff1a; wasm实现 通过对比可以看出来 wasm 实现的计算比纯js刷新相对稳定。

开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享

OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本&#xff0c;分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内&#xff0c;2025年01月01日起&#xff0c;不支持新产品基于老分支&#xff08;OpenHar…

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm&#xff0c;如何接入deepseek是我们窥探ai代码编写的第一步&#xff0c;熟悉起来总没坏处。 1、官网安装pycharm社区版&#xff08;免费&#xff09;&#xff0c;如果需要安装专业版&#xff0c;需要另外找破解码。 2、安装Ollama…

23种设计模式一览【设计模式】

文章目录 前言一、创建型模式&#xff08;Creational Patterns&#xff09;二、结构型模式&#xff08;Structural Patterns&#xff09;三、行为型模式&#xff08;Behavioral Patterns&#xff09; 前言 设计模式是软件工程中用来解决特定问题的一组解决方案。它们是经过验证…

spring boot整合flyway实现数据的动态维护

1、简单介绍一下flyway Flyway 是一款开源的数据库版本控制工具&#xff0c;主要用于管理数据库结构的变更&#xff08;如创建表、修改字段、插入数据等&#xff09;。它通过跟踪和执行版本化的迁移脚本&#xff0c;帮助团队实现数据库变更的自动化。接下来简单介绍一下flyway…

致远电子三合一8路串口服务器

ZLG致远电子全新推出国产化透传型三合一8路串口服务器&#xff0c;让用户轻松实现串口信号与以太网的无缝数据交互。性能强悍&#xff0c;等你来评&#xff0c;还有机会获得新年第一份心意&#xff01; GCOM88-2NET-P硬件速览 国产高性能816MHz处理器&#xff1b; 2路10/100M自…

20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开

sync poweroff rootok3588:/# sync rootok3588:/# sync rootok3588:/# cd 107 rootok3588:/107# ls -l total 0 rootok3588:/107# sync rootok3588:/107# poweroff 20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开 2025/3/4 10:58 缘起&#xff1a…

安路FPGA移植Cortex-M0内核

本文是关于基于安路FPGA EG4S20BG256移植Cortex M0内核的笔记。硬件平台使用硬木课堂的安路核心板&#xff0c;软件使用安路的TD5.6.2和keil5。&#xff08;博主刚学FPGA不久&#xff0c;文中有不足之处请帮忙指出&#xff09; 在移植之前&#xff0c;博主看了网上很多的文章、…

STM32——串口通信 UART

一、基础配置 Universal Asynchronous Receiver Transmitter 异步&#xff0c;串行&#xff0c;全双工 TTL电平 &#xff1a;高电平1 低电平0 帧格式&#xff1a; 起始位1bit 数据位8bit 校验位1bit 终止位1bit NVIC Settings一栏使能接受中断。 之前有设置LCD&#xff0c;…

flink集成tidb cdc

Flink TiDB CDC 详解 1. TiDB CDC 简介 1.1 TiDB CDC 的核心概念 TiDB CDC 是 TiDB 提供的变更数据捕获工具&#xff0c;能够实时捕获 TiDB 集群中的数据变更&#xff08;如 INSERT、UPDATE、DELETE 操作&#xff09;&#xff0c;并将这些变更以事件流的形式输出。TiDB CDC 的…